samsorrahman / Advance-Backend-Blogging-with-DRF

A Django & Django Rest Framework API built with Multi Stage Docker,NGINX,Redis,Portainer and more.... 🔥

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome to Blogging Complete Backend with Django Rest Framework.

This Project Covers

  • How to use Docker with Celery, Redis, Flower with Django REST Framework
  • How to use Reverse Proxies with NGINX and NGINX Proxy Manager
  • How to Secure an API with HTTPS with SSL Certificates from Letsencrypt
  • API testing with Pytest using factories and fixtures
  • How to manage multiple Docker containers with Portainer
  • How to use shell scripts to automate and monitor processes
  • How to implement Asynchronous tasks with Celery and Redis
  • How to Serve static and media files with Nginx and Whitenoise.
  • How to implement Asynchronous tasks monitoring with Flower
  • How to work with Postgres within a Docker container, including how to perform backups using shell scripts.
  • How to setup an Ubuntu server, running Django over a Domain name.
  • How to use makefiles to make working with Docker easier.
  • Searching functionalities using elastic search
  • Python Test coverage using coverage
  • Logging in Django
  • Token Based Authentication
  • Working with emails using Mailhog in development and Mailgun in production.

Features

  • User registration and authentication
  • Creating, editing, and deleting blog posts
  • Liking and commenting on blog posts
  • Following other users and receiving notifications
  • Categorizing blog posts using tags
  • Searching for blog posts by keywords or tags
  • Pagination and sorting of blog posts
  • User profiles with bio and profile picture
  • User activity feed
  • Email notifications using MailHog
  • Asynchronous task processing using Celery and Redis
  • Monitoring and management of Celery tasks using Flower
  • Containerized deployment using Docker and Docker Compose
  • Reverse proxy and load balancing using Nginx

Technologies

Prerequisites

Make sure you have the following technologies installed on your machine:

Getting Started

  1. Clone the repository:

    git clone https://github.com/samsorrahman/Advance-Backend-Blogging-with-DRF.git
    
  2. Navigate to the project directory::

    cd src
    
  3. Build the Docker containers and start the application:

    make build

Download insomnia and add the api.har file

Capture

  1. Once the containers are built and the application is running, you can access the following resources:

    Documentation: Open your web browser and visit localhost:8080/redoc to access the API documentation.

    Flower (Celery monitoring): Open your web browser and visit localhost:5555 to access Flower, the monitoring and management tool for Celery tasks.

    MailHog (Email server): Open your web browser and visit localhost:8025 to access MailHog, the email testing tool. You can view the email notifications sent by the application here.

Additional Commands

The Makefile in the project contains other useful commands for managing the application. Some of the commonly used commands are:

Make sure to stop the application containers when you are done by running: make down

Complete Test Coverage

index.pdf

If you are on windows system: You Must Learn How to Run a Makefile in Windows

Here what I have brought for you!

checkout the requirement folder for dependencies installation.

About

A Django & Django Rest Framework API built with Multi Stage Docker,NGINX,Redis,Portainer and more.... 🔥


Languages

Language:Python 91.3%Language:Shell 5.0%Language:Makefile 1.9%Language:Dockerfile 1.8%