Welcome to the Airbean API project! This is a project involving creating a backend API for the Airbean web application, where users can order coffee and have it delivered via drone.
- User Authentication: Sign up, log in, and manage user profiles.
- Coffee Menu Management: View and manage the coffee menu.
- Order Processing: Place and manage coffee orders.
- Order Tracking: Track the status of coffee orders.
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/LucasDaSilva96/Airbean-API.gitcd airbean-api -
Install dependencies:
npm install -
Set up environment variables: Create a
.envfile in the root directory and add the necessary environment variables (e.g., database connection string, JWT secret). -
Start the server:
npm run dev
The server should now be running on http://localhost:8000.
-
See Menu: https://localhost:8000/api/menu (GET)
-
Create Menu-item: https://localhost:8000/api/menu (POST)
-
Delete Menu-item: https://localhost:8000/api/menu/:itemID (DELETE)
-
Create account: https://localhost:8000/api/signUp (POST)
-
Create order: https://localhost:8000/api/order (POST)
-
Log in: https://localhost:8000/api/logIn (POST)
-
See order history : https://localhost:8000/api/orderHistory/:id (GET)
-
See delivery stats: https://localhost:8000/api/deliveryStats/:orderID (GET)
-
Update delivery stats: https://localhost:8000/api/deliveryStats/:orderID/?:userID (GET)
-
About: https://localhost:8000/api/about (GET)
- Programming Language: JavaScript
- Runtime Environment: Node.js
- Web Framework: Express.js
- Database: MongoDB
- ODM (Object Data Modeling): Mongoose
- Authentication: JWT (JSON Web Tokens)
- Environment Variables: dotenv
- Password Handling: bcrypt
- Validation: Validator
- Date and Time Management: Moment.js, Moment Timezone
- Development Tools: Nodemon
- CORS Handling: CORS (Cross-Origin Resource Sharing)
LucasDaSilva96 (Lucas Da Silva) (github.com), SanJuan99 (Johan Berg Ekvall) (github.com), W-nn-e (Winnie) (github.com), Loushymooshy (github.com), philipalgebrink (Philip Älgebrink) (github.com)