Skip to content

Do0ky/DinoLog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DinoLog logo

React TypeScript CSS3 npm Git Node.js Express MongoDB Mongoose Passport Multer Morgan Dotenv


A MERN stack interactive paleontological field map.
Bridging science and curiosity with an immersive digital field journal where fossils regain their place in the world.
Want to go further? Register to add your own finds and build your personal digital field log.

🌍 Project Vision

DinoLog is built for researchers, amateur paleontologists, and enthusiasts to explore and record fossil discoveries. Inspired by field notebooks and geological maps, it combines scientific accuracy with archival aesthetics.
It offers an immersive digital field journal where fossils are restored to their geographic context and every site reveals part of Earth’s ancient story.

πŸš€ Features

🌐 Front‑End

  • πŸ—ΊοΈ Interactive Map
    Discover dinosaur localities with custom markers, expedition‑style textures, and popups showing specimen details.
  • πŸ“ Add & Edit Discoveries
    Floating action button and popup edit controls let logged‑in users add or update fossil records.
  • πŸ” Search & Filter
    Client‑side search bar filters fossils by name, species, or description for instant results.
  • πŸ‘€ User Authentication Modal
    Glass‑style overlay with login/register forms integrated with JWT authentication.
  • πŸ›‘οΈ Type Safe Data Model
    Discovery shape enforced with TypeScript interfaces for predictable rendering and maintainability.
  • πŸ“± Responsive Design
    Layout adapts seamlessly to mobile devices, ensuring the app is usable on phones and tablets.
  • 🎨 Archival Aesthetics
    CSS overlays, textures, and expedition‑style theming for immersive UI.

βš™οΈ Back-End

  • πŸ”‘ JWT Authentication with Passport
    Secure login/register routes, token‑based session management, and protected endpoints.
  • πŸ—„οΈ MongoDB + Mongoose Models
    Schema‑based fossil records with validation for coordinates, species, and metadata.
  • πŸ“‚ Multer File Uploads
    Handles fossil photo uploads, storing images in the uploads/ directory and serving them statically.
  • πŸ“œ RESTful API Routes
    /api/auth for authentication and /api/discoveries for CRUD fossil operations.
  • πŸ“Š Logging & Middleware
    Morgan for request logging, CORS for cross‑origin access, and body‑parser/Express JSON for request handling.
  • πŸ›‘οΈ Ownership Enforcement
    Edit and delete routes restricted to the user who created the discovery.
  • ⚑ Error Handling
    Consistent JSON responses with success/error keys for reliable frontend integration.

πŸ§ͺ Technologies Used

🌐 Front‑End

  • React
  • TypeScript
  • CSS
  • Leaflet / React‑Leaflet
  • React Router
  • React‑Toastify
  • Context API

βš™οΈ Back‑End

  • Node.js + Express
  • MongoDB + Mongoose
  • Passport (JWT strategy)
  • Multer
  • Morgan
  • CORS
  • Dotenv

πŸ“ Project Structure

assets/
client/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ images/
β”‚   └── index.html
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ AddDiscoveryForm.tsx
β”‚   β”‚   β”œβ”€β”€ AuthModal.tsx
β”‚   β”‚   β”œβ”€β”€ EditDiscoveryForm.tsx
β”‚   β”‚   β”œβ”€β”€ Footer.tsx
β”‚   β”‚   β”œβ”€β”€ Header.tsx
β”‚   β”‚   β”œβ”€β”€ HeroSection.tsx
β”‚   β”‚   └── MapSection.tsx
β”‚   β”œβ”€β”€ context/
β”‚   β”‚   └── AuthContext.tsx
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ HomePage.tsx
β”‚   β”‚   └── MyFossilsPage.tsx
β”‚   β”œβ”€β”€ App.tsx
β”‚   β”œβ”€β”€ index.tsx
β”‚   β”œβ”€β”€ App.css
β”‚   └── index.css
config/
models/
routes/
uploads/
server.js

πŸ“š Data Sources and inspirations

πŸ› οΈ Installation & Setup

git clone https://github.com/Do0ky/DinoLog.git 
cd DinoLog
npm install
npm start

πŸ’‘ Potential Future Enhancements

  • 🧭 Advanced map filters (epoch, formation, location)
  • πŸ¦– Species Page Expansion (connect popup to profiles similar to DinoFinder)
  • β™Ώ Accessibility audit and improvements (including more descriptive ARIA labels for screen readers)
  • πŸ—‚οΈ Enhanced "My Fossils" Page with gallery view, mini‑map of personal discoveries, and quick edit/delete controls

πŸ‘©β€πŸ’» Author

Created by:

  • Claire Peyre

About

A full-stack app to map and share dinosaur fossil discoveries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors