PinQuest is a premium social mapping platform designed for modern explorers. Discover hidden gems, share your favorite landmarks, and connect with a global community through an interactive, real-time map interface.
- 🌐 Interactive Exploration: A high-performance map built with React-Leaflet, featuring clustering, custom markers, and smooth animations.
- 🔥 Real-time Interaction: Instant notifications and live updates powered by Socket.io.
- 📸 Rich Content Sharing: Multi-image posts with Cloudinary/Firebase integration, featuring beautiful glassmorphic UI components.
- 🇪🇹 Ethiopian Landmarks: Curated high-fidelity content focusing on Addis Ababa, featuring authentic coordinates and cultural landmarks.
- 🔐 Secure Authentication: Robust auth system with JWT, OTP-based password reset, and secure email verification.
- 🛡️ Admin Power: Comprehensive dashboard for user management, content moderation, and platform analytics.
- 🧭 Smart Navigation: Integrated routing and direction services (Leaflet Routing Machine).
- Framework: React 19 (Vite)
- Styling: Tailwind CSS 4.0 & Vanilla CSS
- Animation: Framer Motion
- State Management: React Context API
- Map Engine: Leaflet (with React-Leaflet)
- Icons: Lucide React
- Runtime: Node.js (Express 5.0)
- Database: MongoDB (Mongoose)
- Real-time: Socket.io
- Auth: Passport.js (Local & Google OAuth), JWT, Bcrypt
- Security: Helmet, XSS-Clean, Express Rate Limit
- Storage: Cloudinary & Firebase
- Node.js (v18+)
- MongoDB Atlas account
- Cloudinary account (for image uploads)
-
Clone the repository
git clone https://github.com/your-username/PinQuest.git cd PinQuest -
Setup Backend
cd backend npm installCreate a
.envfile in thebackendfolder:PORT=5000 MONGODB_URI=your_mongodb_uri JWT_SECRET=your_secret CLOUDINARY_CLOUD_NAME=your_name CLOUDINARY_API_KEY=your_key CLOUDINARY_API_SECRET=your_secret SMTP_HOST=your_smtp_host SMTP_PORT=587 SMTP_USER=your_email SMTP_PASS=your_password
-
Setup Frontend
cd ../frontend npm installCreate a
.envfile in thefrontendfolder:VITE_API_BASE_URL=http://localhost:5000/api/v1
-
Run Dev Servers
- Backend:
npm run dev(from /backend) - Frontend:
npm run dev(from /frontend)
- Backend:
PinQuest/
├── backend/ # Node.js + Express server
│ ├── controllers/ # Route logic
│ ├── models/ # Mongoose schemas
│ ├── routes/ # API endpoints
│ └── socket/ # Socket.io handlers
└── frontend/ # React + Vite application
├── src/
│ ├── components/ # Reusable UI components
│ ├── contexts/ # Auth & Modal states
│ ├── pages/ # Route pages
│ └── services/ # API & Socket services
- Demo: https://pinquest-app.onrender.com/
- Documentation: API Docs (v1)
Distributed under the MIT License. See LICENSE for more information.
Made by Dawit S. for Explorers everywhere.

