Book-Stream-System is a robust Django-based application designed to streamline the management of book inventory and distribution for organizations. It facilitates efficient tracking of book stocks, sales, donations, and transfers between administrators and distributors.
This has two purposes : Sellers can keep track of their records after each sell and the admin can oversee this, admin will update his master inventory and then will disburse books to seller's inventory via admin panel, also the admin can track all the other information that seller collects (For eg: Customer Details).
- User Management: Role-based access control distinguishing administrators and distributors.
- Inventory Management: Monitor books across master and distributor inventories.
- Transaction Processing: Record book distributions along with customer details.
- Donation Tracking: Manage and track book donations effectively.
- Notifications System: Receive real-time alerts for low stock levels.
- Asynchronous Task Handling: Utilizes Celery with Redis for background task processing.
- Backend: Python, Django
- Database: MySQL
- Asynchronous Task Queue: Celery
- Message Broker: Redis
- Frontend: Django Templates
- Python 3.8 or higher
- MySQL Server
- Redis Server
-
Clone the Repository
git clone https://github.com/Ambuj03/BookStream-System.git cd BookStream-System -
Create a Virtual Environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
-
Environment Configuration : Create a .env file from the example and edit it with your own values:
cp .env.example .env Then edit the file to match your local setup: -
Apply Migrations
python manage.py migrate
-
Create a Superuser
python manage.py createsuperuser
-
Run the Development Server
python manage.py runserver
The application leverages Celery for handling asynchronous tasks, with Redis serving as the message broker.
In a new terminal window (with your virtualenv activated), run:
celery -A BM_DJANGO worker --loglevel=info
python manage.py test
BookStream-System/
├── BM_DJANGO/ # Core Django project directory
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── bm_app/ # Main application logic
│ ├── migrations/
│ ├── templates/
│ ├── static/
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── tasks.py # Celery tasks
│ ├── tests.py
│ └── views.py
├── templates/ # HTML templates
├── .env.example # Example environment variables file
├── .gitignore
├── manage.py
└── requirements.txt
Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries or feedback, please contact [Ambuj Mishra] at [mishraambuj8269@gmail.com].