Skip to content

prashantchauhan-12/MERN-FullStack-Project-WanderSpot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WanderLust - Your Travel Companion 🌍

WanderLust is a full-stack MERN (MongoDB, Express, React, Node.js) application that allows users to share their favorite places, upload images, and interact with a community of travelers.

🚀 Features

  • User Authentication: Secure Sign Up and Login with JWT (JSON Web Tokens) and password hashing (bcryptjs).
  • Place Management:
    • Create new places with titles, descriptions, and addresses.
    • Upload images for each place.
    • Google Maps Integration: Automatically converts addresses to coordinates and displays them on a map.
    • Edit and Delete your own places.
  • Social Interactions:
    • Like System: Like and Unlike places shared by others. real-time like counts.
  • Global Feed: View all users and their shared places.
  • Responsive Design: A modern, dark-themed UI that works seamlessly on desktop and mobile devices.

🛠️ Technology Stack

Frontend:

  • React.js: Validated component-based UI.
  • React Router: For client-side routing.
  • OpenLayers: For map rendering (replacing Google Maps API for easier setup).
  • CSS3: Custom modern styling with a premium dark theme.

Backend:

  • Node.js & Express.js: RESTful API server.
  • MongoDB & Mongoose: NoSQL database for flexible data storage.
  • Multer: For handling image file uploads.
  • JWT & Bcryptjs: For secure authentication and authorization.
  • Google Geocoding API (Optional/Configurable): For address-to-coordinate conversion.

⚙️ Setup & Installation

Follow these steps to run the application locally:

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (Local or AtlasURI)

1. Clone the Repository

git clone <repository-url>
cd wanderlust

2. Backend Setup

Navigate to the backend folder and install dependencies:

cd backend
npm install

Environment Variables: The backend logic currently uses hardcoded credentials/secrets for demonstration purposes. In a production environment, you should create a .env file for:

  • DB_USER
  • DB_PASSWORD
  • DB_NAME
  • JWT_SECRET

Start the backend server:

npm start

The server will start on http://localhost:5000.

3. Frontend Setup

Navigate to the frontend folder and install dependencies:

cd ../frontend
npm install

Start the React development server:

npm start

The application will open in your browser at http://localhost:3000.

📂 Project Structure

├── backend/
│   ├── controllers/    # Request handling logic
│   ├── models/         # Mongoose schemas (User, Place)
│   ├── routes/         # API endpoints
│   ├── middleware/     # Auth and file upload checks
│   ├── uploads/        # Stored images
│   └── app.js          # Entry point
│
├── frontend/
│   ├── src/
│   │   ├── places/     # Place-related components/pages
│   │   ├── user/       # User-related components/pages
│   │   ├── shared/     # Reusable UI elements, hooks, context
│   │   └── App.js      # Main component & Routing

🔐 Security Highlights

  • No Plaintext Passwords: User passwords are hashed before storage.
  • Token-Based Auth: Protected routes (Create, Update, Delete, Like) require a valid JWT.
  • Authorization Checks: Users can only edit or delete their own places.

✨ Future Improvements

  • Add comments functionality to places.
  • Implement a "Follow" system for users.
  • Deploy to a cloud provider (e.g., Heroku, Vercel).

Built with ❤️ by Prashant

About

WanderLust is a full-stack MERN (MongoDB, Express, React, Node.js) application that allows users to share their favorite places, upload images, and interact with a community of travelers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors