βοΈ
TRVL - the Travel App πProject 2 for [CS-1202] Advanced Programming. This is a MERN stack e-commerce (multi-purpose travel booking) platform. This project was built by Ruthu Rooparaghunath, Soham De, and Tanvi Roy.
Quick Start
Open up a CLI, and execute the following commands:
$ git clone https://github.com/tanviroy/trvl.git
$ cd approject2
$ cd backend
$ npm install
$ npm start
$ cd frontend
$ npm install
$ npm start
This should get the server to run at localhost:5000 and frontend to run at localhost:3000
Project Details
This project was built using the MERN stack of technologies.
Major Technologies Used
Area | Technology |
---|---|
Front-End | React, React-Bootstrap, CSS3 |
Authentication | Passport.js, bcrypt.js |
Back-End | Node.js, Express, Mongoose |
Cookie/Database Management | CookieParser, MongoDB, Mongoose |
External APIs Used
We used the Amadeus API for getting real-time flight data and the Airhex API to render airline carrier logos.
Database
We used 2 databases - one for all users and another for the hotels.
Defined Schemas | Schema fields |
---|---|
Users | name: String, googleId: String, email: String, password: String, address: { type: String, default: "home" }, mobile: Number, booked: [{ source: String, destination: String, dateto: String, datefrom: String, hotelId: String, hotelcost: Number, carcost: Number, flightcost: Number }], bucketlist: [{ type: String }], visited: [{ type: String }], |
Hotels | name: String, location: String, price: String, desc: String, imageurl: [{ type: String }], amenities: [{ type: String }], iata: [{ type: String }], rating: [{ type: Number }], reviews: [{ body: String, user: String, verified: String }], bookers: [{ type: String }], available: [{ date: Date, rooms: Number }], bucketlisted: [{ type: String }], |
Codebase Structure
.
βββ backend/
β βββ hotels.js
β βββ package.json
β βββ passportConfig.js
β βββ server.js
β βββ user.js
βββ frontend/
β βββ public/
β β βββ index.html
β βββ src/
β β βββ Pages/
β β βββ components/
β β βββ styles/
β β βββ App.css
β β βββ App.js
β β βββ index.css
β β βββ index.js
β βββ package.json
βββ airbnb-scraper github.py
βββ helper.txt
βββ README.md
Code Documentation
For a more detailed documentation of our code and the complete list of project dependencies see helper.txt.
Design
The Figma wireframe for the project can be viewed here
Demo
Home Page
Explore - Search Flights, Hotels, and Cab Rentals
Login Page - Register, Login with TRVL account or Google OAuth
User Profile - Update Info, View User Insights
Citations
Nearly all of the project code was written by us ourselves. We used documentation code for React Bootstrap, Express, MapBox, and Passportjs where needed.
- We scraped the hotel data from Airbnb