PinQuest is a sophisticated, full-stack social mapping platform designed for high-performance geographical discovery and community interaction. It leverages the MERN stack—MongoDB, Express.js, React, and Node.js—augmented by real-time WebSocket communication and a specialized design system to provide an immersive, premium user experience.
The platform is engineered to handle complex spatial data with high precision, ensuring that the digital representation of landmarks correlates exactly with real-world coordinates through advanced layout management and coordinate projection logic.
PinQuest is built on the principles of reactivity, precision, and visual excellence. The system is divided into three primary layers: the High-Performance Client, the Robust Geodata API, and the Real-time Synchronization Layer.
Built with React 19 and Vite, the frontend is a single-page application (SPA) optimized for speed and fluidity.
- Precision Mapping Engine: Utilizing a customized React-Leaflet implementation, the map features proactive layout invalidation to prevent coordinate drift during UI transitions.
- Dynamic Design System: A hybrid styling approach using Tailwind CSS 4.0 for utility-first layout and Vanilla CSS for complex, glassmorphic UI components.
- Advanced State Management: Global state is orchestrated via the React Context API, providing seamless management of authentication status, real-time notification streams, and complex modal workflows.
- Fluid Motion Design: Framer Motion is integrated throughout the application to provide micro-animations and smooth transitions, creating a sense of quality and responsiveness.
The backend is a high-availability Node.js server powered by Express 5.0, following a RESTful architectural pattern.
- Geospatial Data Processing: Utilizing MongoDB's native geospatial indexing and the Mongoose ODM, the API efficiently handles complex location-based queries.
- Multi-Cloud Storage Logic: Integration with Cloudinary and Firebase Storage allows for high-resolution image processing and reliable asset management.
- Enterprise-Grade Security: The API is protected by multiple layers including Helmet for header security, XSS-clean for input sanitization, and express-rate-limit to prevent brute-force attacks.
- Authentication and Authorization: A sophisticated auth flow using Passport.js and JWT (JSON Web Tokens) handles both local account management and Google OAuth integrations.
Powered by Socket.io, this layer provides bidirectional, low-latency communication between the client and server.
- Instant Community Presence: Live updates ensure that markers created by one user appear instantly on the maps of all active explorers.
- Reactive Notification Infrastructure: Likes, comments, and project-specific alerts are delivered in real-time without requiring page refreshes or polling.
- High-Fidelity Map Markers: Custom-designed SVG markers with dynamic color-coding based on category and average user rating.
- Marker Clustering: Advanced grouping logic that maintains map readability even with thousands of data points at high zoom levels.
- Routing and Direction Services: Integrated Leaflet Routing Machine providing accurate pathfinding between the explorer's current location and discovered landmarks.
- Multimedia Post Creation: A rich creation flow allowing users to upload multiple high-resolution images, detailed descriptions, and precise location tags.
- The Heartbeat System: A reactive liking and favoriting mechanism that provides immediate visual feedback.
- Personalized Exploration Lists: A dedicated bookmarking system allowing users to curate their own private lists of "must-visit" locations.
- OTP-Based Authentication: A secure password reset flow utilizing Time-based One-Time Passwords (OTP) and SMTP-verified email delivery.
- Session Integrity: Robust JWT-based session management ensuring secure cross-device exploration.
- Centralized Admin Dashboard: A specialized interface for administrators to monitor platform health, manage user accounts, and moderate community-generated content.
- Framework: React 19 (Vite)
- Styling: Tailwind CSS 4.0 & Custom CSS
- Animation Engine: Framer Motion
- Map Library: React-Leaflet
- Icons: Lucide React
- Client Networking: Fetch API with specialized request controllers
- Runtime: Node.js (Express 5.0)
- Database: MongoDB (Mongoose ODM)
- Real-time Communication: Socket.io
- Security Middleware: Helmet, XSS-Clean, CORS
- Email Service: SMTP-based mailing with OTP logic
- File Processing: Cloudinary SDK & Firebase Admin SDK
- Node.js (v18.0.0 or higher)
- MongoDB Instance
- SMTP Server access (for email notifications)
- Cloudinary and Firebase credentials
-
Repository Setup
git clone https://github.com/devasol/PinQuest.git cd PinQuest -
Backend Configuration
cd backend npm installCreate a
.envfile in thebackendfolder and populate it with your environment-specific credentials (MONGODB_URI, JWT_SECRET, SMTP settings, etc.). -
Frontend Configuration
cd ../frontend npm installCreate a
.envfile in thefrontendfolder to define theVITE_API_BASE_URL. -
Launching Development Servers To start the full ecosystem, execute
npm run devin both thebackendandfrontenddirectories.
The system follows a clean, modular directory structure designed for scalability and maintainability.
/backend: Contains the API logic, Mongoose models, and Socket.io event handlers./frontend: Contains the React application, optimized asset processing, and the design system components./documentation: Technical specifications and implementation details.
The PinQuest project is designed for continuous evolution. Future iterations will include:
- Augmented Reality (AR) landmark previews.
- Advanced geographical analysis tools for explorers.
- Native mobile applications using React Native.
This project is licensed under the MIT License. For further details, refer to the LICENSE file in the root directory.
Designed and developed by Dawit S. as a testament to modern web engineering and the spirit of discovery.