Thanks to visit codestin.com
Credit goes to github.com

Skip to content

K-a-r-e-e-m/Bookify

Repository files navigation

Bookify

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.

📖 Table of Contents

💡 Features

  • 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

🛠️ Technology Stack

  • Backend: Node.js, Express.js
  • Database: MongoDB
  • Authentication: JWT (JSON Web Tokens)
  • Payment Integration: Stripe
  • Documentation: Swagger

🤝 Third-Party Services

Databases and Storage 🗄️

  • MongoDB Atlas Cloud
  • Redis Cloud

Payment Processing 💳

  • Stripe

Google Login 🔑

  • Google Cloud Console

Email for Password Reset 📧

  • Gmail SMTP

Deployment ☁️

  • Vercel

💠 Installation

  1. Clone the Repository

    git clone https://github.com/youssef3092004/Portfolio-js.git
  2. Install Dependencies

    npm install
  3. ⚙ Set Up Environment Variables  Copy the .env.example file to .env and 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.

  4. Run the backend server

    npm run dev
  5. 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.

💠 Usage

  1. Authentication: Create an account and log in.
  2. Browse Hotels: Search hotels based on location.
  3. Select Amenities: Choose room features and amenities.
  4. Make Payment: Complete the booking using Stripe.
  5. Review Rooms: Share your experience by submitting a review.

🧪 Tests

We have implemented unit tests to ensure all endpoints are reliable, secure, and capable of handling edge cases.

npm run test

📝 Documentation

We 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.

📜 License

This project is licensed under the MIT License. See the LICENSE file for more details.

🔄 Git Flow

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.

📸 Screenshots

Project Flow Diagram: project flow diagram

Endpoints Overview: endpoints overview in swagger

User Authentication Required: Access endpoints securely by logging in with a valid JWT token. authorization in swagger

🎥📚 Demo & Documentation

Check out the Bookify demo and presentation video: Bookify Demo

For API details, visit the doc: View API Docs

👨‍💻 Authors

  • Kareem Hany - Backend Developer (LinkedIn)
  • Youssef Ahmed - Backend Developer (LinkedIn)

💬 Thank you for exploring Bookify! Feel free to contribute or share your feedback.

About

Bookify is a robust back-end system designed for managing hotel bookings based on specific locations.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors