https://github.com/dineshbyte/django-template-api
https://github.com/dineshbyte/django-template-api
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dineshbyte/django-template-api
- Owner: dineshbyte
- Created: 2022-05-27T04:34:39.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-03-31T15:25:50.000Z (over 3 years ago)
- Last Synced: 2025-03-17T22:59:44.627Z (over 1 year ago)
- Language: Python
- Size: 213 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Django Template
[](https://github.com/psf/black)
## Highlights
- Modern Python development with Python 3.8+
- Bleeding edge Django 3.1+
- Fully dockerized, local development via docker-compose.
- PostgreSQL
- Celery tasks
### Features built-in
- JSON Web Token authentication using [Simple JWT](https://django-rest-framework-simplejwt.readthedocs.io/en/latest/)
- API Throttling enabled
- Password reset endpoints
- Sentry setup
- Swagger API docs out-of-the-box
- Code formatter [black](https://black.readthedocs.io/en/stable/)
- Tests (with mocking and factories) with code-coverage support
## API Docs
API documentation is automatically generated using Swagger. You can view documention by visiting this [link](http://localhost:8000/swagger).
## Prerequisites
If you are familiar with Docker, then you just need [Docker](https://docs.docker.com/docker-for-mac/install/). If you don't want to use Docker, then you just need Python3 and Postgres installed.
## Local Development with Docker
Start the dev server for local development:
```bash
cp .env.dist .env
docker-compose up
```
Run a command inside the docker container:
```bash
docker-compose run --rm web [command]
```
## Local Development without Docker
### Install
```bash
python3 -m venv venv
source venv/bin/activate # activate venv
cp .env.dist .env # create .env file and fill-in DB info
pip install -r requirements/dev.txt # install py requirements
./manage.py migrate # run migrations
./manage.py collectstatic --noinput # collect static files
redis-server # run redis locally for celery
celery -A src.config worker --beat --loglevel=debug
--pidfile="./celerybeat.pid"
--scheduler django_celery_beat.schedulers:DatabaseScheduler # run celery beat and worker
```
### Run dev server
This will run server on [http://localhost:8000](http://localhost:8000)
```bash
./manage.py runserver
```
### Create superuser
If you want, you can create initial super-user with next command:
```bash
./manage.py createsuperuser
```
### Running Tests
To run all tests with code-coverage report, simple run:
```bash
./manage.py test
```