The Library Management is an application built with Django Rest Framework. The system is composed of two independent API services: a frontend and a backend. These services communicate with each other via RabbitMQ, which acts as a message broker to ensure efficient and reliable data exchange between them.
The architecture is designed to be scalable and modular, allowing the frontend and backend services to operate independently while maintaining seamless interaction through RabbitMQ.
RabbitMQ is an open-source message broker software that facilitates communication between applications through a messaging queue system. It enables efficient data transmission by allowing services to send and receive messages asynchronously, ensuring reliable message delivery, load balancing, and fault tolerance. By decoupling services, RabbitMQ improves scalability and helps manage high-throughput data processing in distributed systems
Technologies used
- Backend: Python & Django Rest Framework (DRF)
- Database: PostgreSQL
- REST API documentation: Swagger UI(drf-spectacular)
- Testing: Django's built-in test framework (APITestCase, APIClient)
- Containerization - Docker
- Message Queuing: RabbitMQ
To run this web application on your local machine, follow the steps below:
Before getting started, ensure that you have the following software installed on your machine:
- Python: Download and install Python from the official website: https://www.python.org/downloads/
- GIT: Download and install GIT from the official website: https://git-scm.com/downloads
- Docker:
- For Windows or macOS, download and install Docker Desktop from the official website: https://www.docker.com/products/docker-desktop/
- On Linux, you can install Docker Engine directly using your package manager without needing Docker Desktop. Follow the official Docker Engine installation instructions.
Step-by-step guide on how to install the project and its dependencies.
- Clone the repository to your local machine using Git:
HTTPS
git clone https://github.com/bosukeme/library-managment.gitSSH
git clone [email protected]:bosukeme/library-managment.git- Navigate to the project directory
cd library-managment docker network create --driver bridge shared-network docker-compose -f docker-compose-rabbitmq.yaml up --buildOnce this successfully starts up. Proceed to setting up the frontend service and the backend service
Follow the link : https://github.com/bosukeme/library-managment/blob/main/front-end/readme.md
Follow the link : https://github.com/bosukeme/library-managment/blob/main/back-end/readme.md
If you would like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Submit a pull request.
Ukeme Wilson