https://github.com/shiningflash/django-reservation-system
A powerful Django Reservation System with REST APIs for managing users, rooms, bookings, and payments. Fully Dockerized, it offers seamless deployment, Swagger documentation, and scalability for various reservation needs.
https://github.com/shiningflash/django-reservation-system
django django-rest-framework docker hotel-booking microservice python rest-api swagger user-management
Last synced: 17 days ago
JSON representation
A powerful Django Reservation System with REST APIs for managing users, rooms, bookings, and payments. Fully Dockerized, it offers seamless deployment, Swagger documentation, and scalability for various reservation needs.
- Host: GitHub
- URL: https://github.com/shiningflash/django-reservation-system
- Owner: shiningflash
- License: mit
- Created: 2021-09-05T14:19:00.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-12-11T17:11:18.000Z (about 1 year ago)
- Last Synced: 2025-04-09T20:02:02.640Z (9 months ago)
- Topics: django, django-rest-framework, docker, hotel-booking, microservice, python, rest-api, swagger, user-management
- Language: Python
- Homepage: https://github.com/shiningflash/django-reservation-system/blob/master/README.md
- Size: 60.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hotel Reservation System
A Dockerized Hotel Reservation System built with Django, offering REST APIs for user management, room reservations, payments, and check-ins/check-outs. This project provides seamless Swagger and Insomnia documentation support for developers.
[](https://github.com/shiningflash/django-reservation-system/blob/master/docs/api_documentation.md) [](https://github.com/shiningflash/django-reservation-system/blob/master/docs/api_documentation_insomnia.json)
---
## Features
- **User Management**: Register, login, change password, and manage user profiles.
- **Room Management**: Add, update, and view room details.
- **Customer Management**: Add, update, and view customer details.
- **Booking System**: Manage bookings with real-time check-in/check-out functionality.
- **Payment System**: Record and track payments.
- **API Documentation**:
- Swagger: Interactive API documentation available at `http://localhost:8010/swagger/`.
- Insomnia: Pre-configured API workspace for testing.
---
## Prerequisites
Ensure the following are installed on your system:
- Python 3.x
- Docker and Docker Compose
---
## Getting Started
1. Clone the repository:
```bash
git clone https://github.com/shiningflash/django-reservation-system.git
cd django-reservation-system
```
2. Copy the `.env.example` file and create a `.env` file, and adjust the values accordingly.
3. Build and run the application using Docker:
```bash
docker-compose up --build
```
4. Access Swagger documentation:
- [Swagger UI](http://localhost:8010/swagger/)
5. Manage migrations:
```bash
docker exec -it reservationsystem_app_1 bash
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py createsuperuser
```
---
## API Endpoints
[](https://github.com/shiningflash/django-reservation-system/blob/master/docs/api_documentation.md)
[](https://github.com/shiningflash/django-reservation-system/blob/master/docs/api_documentation_insomnia.json)
### Admin Management
- **Register Admin**: `POST /api/account/register`
- **Login**: `POST /api/account/login`
- **Change Password**: `PUT /api/account/change-password`
- **Password Reset**:
- Request: `POST /api/password_reset/`
- Confirm: `POST /api/password_reset/confirm/`
### Customer Management
- **List Customers**: `GET /api/customer/`
- **Add Customer**: `POST /api/customer/`
- **Update Customer**: `PATCH /api/customer//`
### Room Management
- **List Rooms**: `GET /api/room/`
- **Add Room**: `POST /api/room/`
- **Update Room**: `PATCH /api/room//`
### Booking Management
- **List Bookings**: `GET /api/booking/`
- **Add Booking**: `POST /api/booking/`
- **Check-in**: `PATCH /api/booking//checkin/`
- **Check-out**: `PATCH /api/booking//checkout/`
### Payment Management
- **List Payments**: `GET /api/payment/`
- **Add Payment**: `POST /api/payment/`
---
## Running Tests
To run the tests, execute:
```bash
docker exec -it reservationsystem_app_1 bash
python3 manage.py test
```
---
## Technologies Used
- **Backend**: Django, Django REST Framework
- **Containerization**: Docker, Docker Compose
- **Database**: PostgreSQL
- **Documentation**: Swagger, Insomnia
- **CI/CD**: Github Actions
---
## Contributing
We welcome contributions! Please follow the steps below:
1. Fork the repository.
2. Create a new feature branch: `git checkout -b feature/your-feature-name`.
3. Commit your changes: `git commit -m "Add some feature"`.
4. Push to the branch: `git push origin feature/your-feature-name`.
5. Open a pull request.
---
## License
This project is licensed under the [MIT License](LICENSE).
---
## Contact
For more details, reach out to:
- **Email**: [amirulislamalmamun@gmail.com](mailto:amirulislamalmamun@gmail.com)