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.
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.
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.
Urban Buzz caters to a diverse range of travelers, including:
- Families
- Travel Enthusiasts
- Solo Adventurers
- 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)
Before you begin, make sure you have already installed Node.js, NPM, and MongoDB.
-
Clone the repository:
https://github.com/OrNixz/urban-buzz.git
-
Navigate to the project directory:
cd your-project-name
-
Install dependencies:
npm install
Run the MongoDB server by typing mongod
in the command prompt, and type mongosh
to interact with the MongoDB server.
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
.
- 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:
- Passport: Authentication middleware.
- Passport-Local-Mongoose: Passport plugin for local authentication.
- Express Session: Express middleware for user sessions.
- Connect-Flash: Express middleware for flash messages.
- Other Middleware:
- Method-Override: Middleware to support HTTP methods.
- Multer: Middleware for file uploads.
Click to see!
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.
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