Skip to content

A project from the "Learn to Build a Directory Listing App Case Study Application" course

Notifications You must be signed in to change notification settings

OrNixz/urban-buzz

Repository files navigation


🏨⛰️✈️ Urban Buzz ✈️⛰️🏨


1. Overview 📖

Project Description

Urban Buzz is a comprehensive online platform designed to empower travelers with accurate, up-to-date information and insightful reviews of tourist attractions worldwide. We strive to eliminate the frustration of encountering unreliable recommendations and discrepancies in pricing, location, and other crucial details, so you can plan your dream vacation with confidence.

Mission

Our mission is to transform the way travelers discover and experience the world. We believe that everyone deserves a seamless, well-informed travel journey, free from misinformation and unnecessary surprises.

Vision

Urban Buzz envisions a future where travelers have a trusted resource at their fingertips, empowering them to embark on meaningful, personalized adventures. We aim to become the leading platform for authentic travel experiences, enriching lives and fostering deeper connections with diverse cultures and landscapes.

Target Audience

Urban Buzz caters to a diverse range of travelers, including:

  • Families
  • Travel Enthusiasts
  • Solo Adventurers

2. Features ✨

  • User Authentication and Authorization (allows users to register, then login with their accounts, and logout.)
  • Place CRUD Operations (List, create, show, edit, update, and delete places.)
  • Image Management (upload and delete images for a place, and you can upload up to five photos).
  • Place Validation and Authorization (validate place data during creation and update.)
  • Geolocation Handling (fetching geolocation data for a place.)
  • Review Management (deleting associated reviews when a place is deleted.)
  • Review Operations (create, read, and delete reviews)

3. Getting Started 🚀

Prerequisites:

Before you begin, make sure you have already installed Node.js, NPM, and MongoDB.

Installation:

  1. Clone the repository: https://github.com/OrNixz/urban-buzz.git

  2. Navigate to the project directory: cd your-project-name

  3. Install dependencies: npm install

Database Setup:

Run the MongoDB server by typing mongod in the command prompt, and type mongosh to interact with the MongoDB server.

Connection to the Database:

mongoose
  .connect("mongodb://127.0.0.1/urbanbuzz")
  .then((result) => {
    console.log("Connected to MongoDB");
  })
  .catch((err) => {
    console.log(err);
  });

After getting things done, you can run the application by nodemon app.js (obviously you must install nodemon before) or node app.js.

Oh yeah, I forgot something to say, although this is optional. You can create the places and their details by typing node seeds/place.js, and for the images in each, you can search the uploads folder on seeds/uploads.

4. Technologies Used 🔧

  • Platform and Runtime:
    • Node.js: JavaScript runtime platform for server-side applications.
  • Package Management:
    • NPM: Package manager for installing and managing project dependencies.
  • Framework:
    • Express: Web framework for Node.js.
  • Database and ODM:
  • Template Engine:
    • EJS: Template engine for HTML views.
  • Input Validation:
    • Joi: Input validation library.
  • Authentication and Session Middleware:
  • Other Middleware:

5. Screenshots 📷

Click to see!

1. Home page

2. Register page

3. Login page

4. Place map location page

5. Places overview page

6. Place details and its reviews

7. Place details when the user logs in

8. Add place page

9. Edit place

6. Contributing 🤝

We welcome contributions to this project! If you find a bug or have suggestions for improvements, don't hesitate to submit an issue or pull request.

7. Credits 🙌

This project was inspired by the Learn to Build a Directory Listing App Case Study Application course on the Full-Stack Javascript roadmap, with a slight distinction and additional styling that suits my style. Shout out to the creator who made this project @lunadiotic

About

A project from the "Learn to Build a Directory Listing App Case Study Application" course

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published