Skip to content

AdventurePoint is a full-stack web application that allows users to discover, share, and review adventure destinations. It's built with Node.js, Express, MongoDB, and EJS, showcasing a robust backend architecture and a dynamic frontend.

Notifications You must be signed in to change notification settings

Ansh-Dev-Nagar/Adventure_Point

Repository files navigation

AdventurePoint

AdventurePoint is a full-stack web application that allows users to discover, share, and review adventure destinations. It's built with Node.js, Express, MongoDB, and EJS, showcasing a robust backend architecture and a dynamic frontend. You can find the Project Purpose, Key Features, Technologies Used, and other information about AdventurePoint below the AdventurePoint WebApp section.

AdventurePoint WebApp

  1. Home page:

    Screenshot 2024-10-21 at 7 40 10 AM
  2. Adventure Places page:

    Screenshot 2024-10-21 at 7 40 28 AM
  3. Opening Adventure Place:

    Screenshot 2024-10-21 at 7 40 47 AM
  4. Editing adventure place:

    Screenshot 2024-10-21 at 7 41 28 AM Screenshot 2024-10-21 at 7 41 38 AM
  5. Adding new AdventurePlace:

    Screenshot 2024-10-21 at 7 39 03 AM
  6. Login and Register Page:

    -Login Screenshot 2024-10-21 at 7 36 40 AM

    -Register Screenshot 2024-10-21 at 7 37 19 AM

Project Purpose

The main goal of AdventurePoint is to create a platform where adventure enthusiasts can:

  1. Share their favorite adventure spots
  2. Discover new places to explore
  3. Leave reviews and ratings for locations they've visited
  4. Interact with a community of like-minded adventurers

This project demonstrates proficiency in full-stack web development, database management, user authentication, and cloud storage integration.

Key Features

  • User authentication & authorization (signup, login, logout)
  • CRUD operations for adventure places
  • Image upload and management using Cloudinary
  • User reviews and ratings for adventure places
  • Responsive design for various screen sizes
  • Flash messages for user feedback
  • Client side and Server-side data validation
  • MongoDB database integration
  • RESTful API design

Technologies Used

  • Backend: Node.js, Express.js
  • Database: MongoDB with Mongoose ODM
  • Frontend: EJS (Embedded JavaScript templates), Bootstrap
  • Authentication: Passport.js
  • Image Upload: Cloudinary, Multer
  • Data Validation: Joi
  • Testing APIs: Postman
  • Other Libraries:
    • connect-flash for flash messages
    • method-override for HTTP verb support
    • express-session for session management

Project Structure

The project follows a Model-View-Controller (MVC) architecture:

  • models/: Database schemas (adventureplace.js, review.js, user.js)
  • views/: EJS templates for rendering pages
  • controllers/: Logic for handling requests (adventureplaces.js, reviews.js)
  • routes/: Express routes for different resources
  • middleware/: Custom middleware functions
  • public/: Static assets (CSS, client-side JavaScript)
  • utils/: Utility functions and error handlers
  • seeds/: Seeding script for populating the database with initial data

Setup and Installation

  1. Clone the repository
  2. Install dependencies: npm install
  3. Set up environment variables (MongoDB URI, Cloudinary credentials)
  4. Run the seeding script: node seeds/index.js
  5. Start the server: node app.js

Future Enhancements

  • Implement user profiles with adventure histories
  • Add a map view for adventure places using a mapping API
  • Introduce social features like following users and sharing adventures
  • Implement a recommendation system based on user preferences and history

Contributing

Contributions to AdventurePoint are welcome! Please feel free to submit a Pull Request.

About

AdventurePoint is a full-stack web application that allows users to discover, share, and review adventure destinations. It's built with Node.js, Express, MongoDB, and EJS, showcasing a robust backend architecture and a dynamic frontend.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published