Penguin Database is a full-stack web application that allows users to enter their unique penguins, visualize them on an interactive map, and serve as an open-source platform for penguin data and information.
- 🐧 CRUD Operations - Create, read, update, and delete penguin records
- 🗺️ Interactive Mapping - Visualize penguin locations using Leaflet
- 🔍 Search Functionality - Find penguins by name or species
- �️ API Rate Limiting - Protection against abuse with tiered rate limits
- �📊 Performance Monitoring - Real-time request and database query tracking
- 🏥 Health Monitoring - Comprehensive system health and metrics endpoints
- ✅ Input Validation - Robust data validation and sanitization
- 🧪 Test Coverage - Jest unit tests for models
- React 19 - UI framework
- React Router - Client-side routing
- Leaflet - Interactive mapping
- JavaScript (ES6+)
- CSS3
- Node.js & Express - Server framework
- MongoDB - Database
- RESTful API design
- MVC Pattern
- React Context API for state management
- Performance monitoring middleware
- Error rate tracking
- Database query optimization
- Github Copilot and Claude
- Node.js (v14 or higher)
- MongoDB (local or Atlas)
- npm or yarn
-
Navigate to the backend directory:
cd PenguinDataBase-Project/backend -
Install dependencies:
npm install
-
Start the server:
npm start # Production mode npm run dev # Development mode with auto-restart
-
Navigate to the frontend directory:
cd PenguinDataBase-Project/frontend -
Install dependencies:
npm install
-
Start the development server:
npm start
The frontend will run on http://localhost:3000 and the backend on http://localhost:5000.



