A college project in Node JS using Express and MongoDB.
Description: a basic "travel agency" website with permission management and two user types.
Collaborators | |
@ElenaChes | @RoeiHarfi |
![]() |
![]() |
- Open a MongoDB project if you don't have one.
- Create a
.env
file and paste your MongoDB connection string in it, the file should look like this:
DB=mongodb+srv://<USERNAME>:<PASSWORD>@<CLUSTER>.mongodb.net/?retryWrites=true&w=majority
- Create users in your MongoDB database according to the schema in
database/account.js
.
For example:
![](https://private-user-images.githubusercontent.com/54331769/263469988-87d71734-4300-4a1a-911d-e02e5fd6de9a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTMzNTIsIm5iZiI6MTcxOTU5MzA1MiwicGF0aCI6Ii81NDMzMTc2OS8yNjM0Njk5ODgtODdkNzE3MzQtNDMwMC00YTFhLTkxMWQtZTAyZTVmZDZkZTlhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI4VDE2NDQxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU1ZmFlNDEyMTNkNWJmN2VkZDlkODFiNWZjZjJlZDk4ZmY0MTViYzcxYjU2NzY5MjcwNTQ4ZjIyYjE1OTY3ZWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.PvLSIcuGKmoicUksuUaKbnsnmtlt6IzeQEOEZC843Rs)
username: "admin"
password: "admin1"
permissions: "admin"
username: "bob"
password: "bob1"
permissions: "user"
IDnumber: "123456789"
cardNumber: "6789678967896789"
fullName: "Bob Bobby"
![](https://private-user-images.githubusercontent.com/54331769/263469946-e0096097-8c64-45aa-9951-42cdca488e9b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTMzNTIsIm5iZiI6MTcxOTU5MzA1MiwicGF0aCI6Ii81NDMzMTc2OS8yNjM0Njk5NDYtZTAwOTYwOTctOGM2NC00NWFhLTk5NTEtNDJjZGNhNDg4ZTliLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI4VDE2NDQxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdiOWE3MzZmYTEyNjE4NGEzNDhkNjIyZmU4ZmQzZDBhNzE4OTBhMDFlYzlkNjc3YmY5YzJmMWUzYzZmNTUwMTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.d2yoWuAXotxHZ5ybtcaKiwe_WthWFEl6wUW8vwow1uY)
username: "david"
password: "david1"
permissions: "user"
- Change "autoOpen" in
app.js
to your preferred launch method. - Run
npm i
. - Start
app.js
.
- Login to your preferred user.
- Admin users can:
- adjust the seat amount of each plane. (don't ask, college requirement)
- edit, delete and creates flights.
- Regular users can:
- view existing flights, sort and filter flights.
- book tickets for available flights.
- have the app insert their payment details from the database (if they exist).
- or input a card manually to "pay" for the flight.
Note
The app doesn't check for card validity and doesn't try to make a transaction.