Pingo is a travel tracking and planning app that lets users map visited cities, save notes and memories, and organize trips visually. With personalized recommendations and smart planning tools, it helps travelers relive past journeys and discover new destinations. ๐
๐ https://pingo-oohnohassani.netlify.app/
-
๐ Geolocation Integration Automatically detects and centers the map based on the userโs current location.
-
๐บ๏ธ Interactive Maps (Leaflet) Smooth and dynamic map experience powered by React Leaflet.
-
๐ Track Visited Cities Click anywhere on the map to add and save locations.
-
๐ Notes & Memories Store travel details, dates, and personal notes for each place.
-
๐ Authentication & Protected Routes Secure parts of the app with login logic and route protection.
-
๐ Client-Side Routing (React Router) Fast navigation without page reloads.
-
๐ Fetch API Integration Handles communication with the backend.
-
๐ง Global State Management (Context API) Clean and scalable state handling across the app.
-
๐๏ธ JSON Server (Mock Backend) Simulates a real backend for storing and retrieving travel data.
-
โก Vite Powered Lightning-fast development and build performance.
- Frontend: React + Vite
- Routing: React Router
- Maps: React Leaflet
- State Management: Context API
- Data Fetching: Fetch API
- Backend: JSON Server
- Authentication: Custom auth system
- Styling: CSS Modules
Follow these steps to run the project locally:
git clone https://github.com/Oohnohassani/Pingo.git
cd Pingonpm installnpm run server- Starts the mock API (typically on
http://localhost:8000) - Stores your places and travel data
Open a new terminal:
npm run devThen visit:
http://localhost:5173
-
You must run both servers simultaneously:
- JSON Server โ backend
- Vite โ frontend
-
๐ Geolocation requires browser permission If denied, location-based features will be limited.
src/
โโโ components/ # Map, UI elements, forms
โโโ contexts/ # Global state (Places, Auth)
โโโ hooks/ # Custom hooks (useGeolocation)
โโโ pages/ # Route-based pages
โโโ utils/ # Helper functions
- ๐ Replace JSON Server with a real backend (Node.js / Firebase)
- ๐ Add search & filtering for places
- ๐ฑ Improve mobile responsiveness
- ๐ค Enable trip sharing & collaboration
- ๐งญ Advanced trip planning tools
This project showcases:
- Real-world React architecture
- API integration & async handling
- Authentication & protected routing
- Interactive maps & geolocation
- Scalable state management
Happy coding โ๏ธ
