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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

25fe833 · Oct 30, 2020
Oct 17, 2020
Oct 16, 2020
Oct 25, 2020
Oct 25, 2020
Oct 7, 2020
Oct 16, 2020
Oct 21, 2020
Oct 20, 2020
Oct 25, 2020
Oct 17, 2020
Oct 20, 2020
Oct 25, 2020
Oct 21, 2020
Oct 17, 2020
Oct 30, 2020
Oct 20, 2020
Oct 19, 2020
Oct 25, 2020
Oct 25, 2020
Oct 25, 2020
Oct 5, 2020
Oct 21, 2020
Oct 19, 2020
Oct 20, 2020

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.