An open API service indexing awesome lists of open source software.

https://github.com/midoahmed/django-rest-api

Generic Backend which exposes a REST API as well as user screens
https://github.com/midoahmed/django-rest-api

django django-environ django-framework django-rest-framework django-seed docker docker-compose githooks gunicorn-web-server nginx postgres python3 seed swagger-ui travis-ci

Last synced: 2 months ago
JSON representation

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

Awesome Lists containing this project

README

          

# [Backend API REST & UI Views based on DJANGO](https://github.com/MidoAhmed/django-rest-api)

************ Coded in **Django Framework** by **ME** [MEK](https://github.com/MidoAhmed) ************


> 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](https://github.com/joke2k/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](https://github.com/Brobin/django-seed)
- Documenting Your API via [drf-yasg](https://github.com/axnsan12/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

```bash
$ # 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:
$
$ # 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:

```bash
WORK IN PROGRESS
```


> The bootstrap flow

- WORK IN PROGRESS


## Deployment

The app is provided with a basic configuration to be executed in [Docker](https://www.docker.com/)

### [Docker](https://www.docker.com/) execution
---

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

> Get the code

```bash
WORK IN PROGRESS
```

> Start the app in Docker

```bash
WORK IN PROGRESS
```

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


## Credits & Links

- [Django](https://www.djangoproject.com/) - The official website


---
[Backend API REST & UI Views based on DJANGO](#) - Provided by **ME** [MEK](https://github.com/MidoAhmed).