Bookify is a backend project for booking hotels based on a specific location. In this project, we built an API with Node.js and documented these APIs with Swagger.
- Features
- Technology Stack
- Third-Party Services
- Installation
- Usage
- Tests
- Documentation
- License
- Git Flow
- Screenshots
- Demo and Documentation
- Authors
- User can booking room based on specific location
- User can specify location for the room
- User authentication (register, login, reset password with email, login with google)
- User can select amenitys for this room
- User can payment with stripe
- finally user can review the room
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT (JSON Web Tokens)
- Payment Integration: Stripe
- Documentation: Swagger
Databases and Storage 🗄️
- MongoDB Atlas Cloud
- Redis Cloud
Payment Processing 💳
- Stripe
Google Login 🔑
- Google Cloud Console
Email for Password Reset 📧
- Gmail SMTP
Deployment ☁️
- Vercel
-
Clone the Repository
git clone https://github.com/youssef3092004/Portfolio-js.git
-
Install Dependencies
npm install
-
⚙ Set Up Environment Variables Copy the
.env.examplefile to.envand fill in the necessary environment variables like JWT_SECRET.cp .env.example .env
Note: The .env file is used to configure the project. Ensure you provide the required values for the environment variables listed in the .env.example.
-
Run the backend server
npm run dev
-
Open Swagger api documentation
Navigate to http://localhost:3000/api-docs in your browser to see api documentations and test it.
Tip: You can also test endpoints using Postman.
- Authentication: Create an account and log in.
- Browse Hotels: Search hotels based on location.
- Select Amenities: Choose room features and amenities.
- Make Payment: Complete the booking using Stripe.
- Review Rooms: Share your experience by submitting a review.
We have implemented unit tests to ensure all endpoints are reliable, secure, and capable of handling edge cases.
npm run testWe document the API with Swagger, providing clear and interactive documentation for all endpoints, request parameters, and responses. This ensures easy access and understanding for developers.
This project is licensed under the MIT License. See the LICENSE file for more details.
We follow an organized Git Flow for development:
dev: Main development branch.
feature/branch: Each feature is developed in separate branches created from dev.
main: Stable production branch.
hotfix/branch: Critical fixes branched from main.
User Authentication Required: Access endpoints securely by logging in with a valid JWT token.

Check out the Bookify demo and presentation video: Bookify Demo
For API details, visit the doc: View API Docs

