Skip to content

Generic Backend which exposes a REST API as well as user screens

Notifications You must be signed in to change notification settings

MidoAhmed/django-rest-api

Repository files navigation

************ Coded in Django Framework by ME MEK ************


Features:

  • Python v3.8, Django v3.1.2, Django REST framework v3.12.1
  • PostgresSQL Database, Django Native ORM
  • 12-Factor based settings via django-environ
  • Clean code-base
  • Docker support using docker-compose for development
  • Productivity tip: using Makefile
  • Versioning API v1, v2...
  • Seed your database via django-seed
  • Documenting Your API via drf-yasg
  • Dockerize the app
  • Travis-CI
  • Test-Driven Development (TDD) of APIs
  • Deployment scripts: Docker, Gunicorn / Nginx

Next Features:

  • LOGGING (for prod purpose)
  • Release
  • Supervisor


How to use it

$ # Get the code
$ git clone https://github.com/MidoAhmed/django-rest-api
$ cd django-rest-api
$
$ # Virtualenv modules installation (Unix based systems)
$ virtualenv env
$ source env/bin/activate
$
$ # Virtualenv modules installation (Windows based systems)
$ # virtualenv env
$ # .\env\Scripts\activate
$
$ # Install packags
$ pip install -r requirements/dev.txt
$
$ # Create tables
$ python manage.py makemigrations
$ python manage.py migrate
$
$ # Start the application (development mode)
$ python manage.py runserver # default port 8000
$
$ # Start the app - custom port
$ # python manage.py runserver 0.0.0.0:<your_port>
$
$ # Access the web app in browser: http://127.0.0.1:8000/


Note: WORK IN PROGRESS


Code-base structure

The project is coded using a simple and intuitive structure presented bellow:

    WORK IN PROGRESS

The bootstrap flow

  • WORK IN PROGRESS

Deployment

The app is provided with a basic configuration to be executed in Docker

Docker execution


The application can be easily executed in a docker container. The steps:

Get the code

    WORK IN PROGRESS

Start the app in Docker

    WORK IN PROGRESS

Visit http://localhost:5005 in your browser. The app should be up & running.


Credits & Links

  • Django - The official website


Backend API REST & UI Views based on DJANGO - Provided by ME MEK.