Amar Boi is an online bookshop API developed using Django Rest Framework (DRF). It integrates user management, JWT for secure authentication, and django_filters for advanced filtering capabilities. Utilizing nested routers, it organizes various endpoints for seamless navigation. The API supports comprehensive models, including Category, Author, Publication, Book, Order, OrderItem, Customer, Review, Cart, and CartItem. This setup ensures a robust and scalable system, facilitating efficient management of books, orders, and customer interactions, delivering a streamlined and engaging user experience.
- User management
- JWT for secure authentication
- Advanced filtering with django_filters
- Nested routers for organized endpoints
- Comprehensive models for a full-fledged online bookshop
- Django (4.2, 5.0)
- Python (3.8, 3.9, 3.10, 3.11, 3.12)
git clone https://github.com/anmabrar/amar_boi.git
cd amar_boi
If you don't have pipenv installed, you can install it using pip:
pip install pipenv
Use pipenv to install the required dependencies:
pipenv install
Activate the virtual environment created by pipenv:
pipenv shell
Run the following command to apply database migrations:
python manage.py migrate
Create a superuser to access the Django admin interface:
python manage.py createsuperuser
Follow the prompts to set up the superuser credentials.
Start the Django development server:
python manage.py runserver
- Access the admin interface at http://127.0.0.1:8000/admin/ using the superuser credentials.
- Create users, projects, and tasks through the admin interface or implement the frontend as needed.
If you want to contribute to this project, please fork the repository and submit a pull request. We welcome all improvements, whether they are code improvements, bug fixes, or documentation enhancements.
http://127.0.0.1:8000/swagger/
http://127.0.0.1:8000/redoc/
- Database Configuration: If you need to use a different database (other than SQLite), make sure to update the
DATABASES
setting in thesettings.py
file. - Static Files: If you are serving static files, ensure you have set up the static files directory and collected static files using:
python manage.py collectstatic
- rest_framework
- rest_framework_simplejwt
- drf-nested-routers
- django_filters
- drf_yasg
- debug_toolbar