Skip to content

aliseyedi01/Django-Bookshelf-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bookshelf API with Django & DRF

A Bookshelf API implemented with Django and DRF

📚 Contents

📚 Demo

Tip

The Render.com free plan may experience a short delay (approximately 1 minute) when starting up. Please be patient for the initial access.

✨ Features

  • Book Endpoints:
    • Comprehensive CRUD operations for managing book details, covering creation, retrieval, updating, and deletion.
  • Category Management:
    • Operations for managing book categories, allowing users to create, retrieve, update, and delete book categories.
  • User Authentication:
    • Implementation of secure user authentication using JWT (JSON Web Token) for robust access control and identity verification.
  • Search and Filter:
    • Implementation of advanced search and filter functionalities to elevate the book browsing experience, allowing users to find specific information efficiently.
  • Account Management:
    • User-friendly operations for managing user accounts, enabling users to retrieve, update, or delete their account information.
  • Swagger:
    • Seamless integration of Swagger UI or ReDoc for comprehensive API documentation. This ensures developers have clear and accessible documentation to understand and utilize the API effectively.

🔧 Technologies Used

  • Django:
    • A high-level Python web framework that encourages rapid development and clean, pragmatic design.
  • PostgreSQL:
    • A powerful open-source relational database management system used for data storage.
  • JWT Authentication:
    • Implementing JSON Web Token authentication for secure user authentication.
  • Gunicorn:
    • A Python WSGI HTTP server for UNIX, used for deploying Django applications in production.
  • Django ORM:
    • Django's built-in Object-Relational Mapping (ORM) library for database interactions, used for managing book data.
  • Django Rest Framework (DRF):
    • A powerful toolkit for building Web APIs in Django, used for creating RESTful endpoints for book management.

🚀 API Endpoints

image

🗃️ Database

image

🛠️ Installation

  1. Clone the repository:
git clone https://github.com/aliseyedi01/Django-Bookshelf-API.git
  1. Navigate to the project directory:

    Django-Bookshelf-API
  2. Create a virtual environment:

    python3 -m venv venv
  3. Activate the virtual environment:

    On Windows:

    venv\Scripts\activate

    On macOS and Linux:

    source venv/bin/activate
  4. Install dependencies:

    pip install -r requirements.txt

🔐 Environments

The following are the essential environment variables required to configure the application:

SECRET_KEY
DJANGO_DB_ENGINE
DJANGO_DB_NAME
DJANGO_DB_USER
DJANGO_DB_PASSWORD
DJANGO_DB_HOST
DJANGO_DB_PORT
EMAIL_BACKEND
EMAIL_HOST
EMAIL_PORT
EMAIL_USER
EMAIL_PASSWORD
EMAIL_USE_TLS
EMAIL_USE_SSL
SUPABASE_URL
SUPABASE_KEY

🖥️ Usage

  1. Run Django migrations:

    python manage.py migrate

    This will apply any pending database migrations.

  2. Run the Django development server:

    python manage.py runserver

    The API will be accessible at http://127.0.0.1:8000/

  3. Access the Swagger UI and ReDoc:

🤝 Contributing

Feel free to contribute to the project. Fork the repository, make changes, and submit a pull request.

📝 License

This project is licensed under the MIT License.

🔝 Back To Top

About

Bookshelf API built using Django and Django Rest Framework (DRF) for efficient management of books, categories, and user authentication

Topics

Resources

Stars

Watchers

Forks

Languages