A Django REST Framework template for building RESTful APIs
Find a file
2024-09-07 13:51:26 +08:00
backend Fix error in INSTALLED_APPS 2024-09-07 00:08:28 +08:00
documentation/erd Overhauled entire project config, added notifications, email templates, optimized stripe subscriptions, redis caching, and webdriver utilities 2024-05-10 23:15:29 +08:00
.dockerignore Update README.md and fix deployment step in .woodpecker.yml 2024-08-30 19:44:37 +08:00
.env.sample Add native PgBouncer support to alleviate DB connection limit errors 2024-09-05 13:16:23 +08:00
.gitignore Clean up .gitignore and some references to template used for the project 2024-09-06 23:42:03 +08:00
.prettierignore Overhauled entire project config, added notifications, email templates, optimized stripe subscriptions, redis caching, and webdriver utilities 2024-05-10 23:15:29 +08:00
.woodpecker.yml Prune older images after successful deployment 2024-09-07 13:51:26 +08:00
docker-compose.demo.yml Increase connection count 2024-09-05 15:00:00 +08:00
docker-compose.dev.yml Remove external port binding for Inbucket SMTP in dev yml 2024-09-06 23:31:15 +08:00
Dockerfile Modify Dockerfile 2024-09-07 13:39:22 +08:00
Pipfile Move production server to granian from gunicorn 2024-06-04 20:19:13 +08:00
Pipfile.lock Move production server to granian from gunicorn 2024-06-04 20:19:13 +08:00
README.md Update README.md 2024-09-06 23:35:31 +08:00
requirements.txt Move production server to granian from gunicorn 2024-06-04 20:19:13 +08:00
seed_data.json Overhauled entire project config, added notifications, email templates, optimized stripe subscriptions, redis caching, and webdriver utilities 2024-05-10 23:15:29 +08:00
start.sh Remove unnecessary .env parsing from startup script 2024-09-01 18:07:56 +08:00

DRF-Template

Build Status Demo Page Status

This is a Django template that I personally use for my projects. This covers the following

  • Emails (and templated email designs)
  • Celery (For asynchronous tasks)
  • Celery Beat (For scheduled tasks)
  • Caching (via Redis)
  • Performance profiling (via Django Silk)
  • Selenium (Optional, for webscraping with support for Chrome and Firefox drivers)
  • Stripe Subscriptions (Optional, with regular and pro-rated subscription support)
  • Notifications (via traditional RESTful endpoints)
  • A working Woodpecker CI/CD template for automated deployments

A live API demo can be found here

Development

  • Create a copy of the .env.sample file and name it as .env in the same directory
  • Populate .env with values
  • Run docker-compose -f docker-compose.dev.yml up

When using docker-compose.dev.yml, the entire project directory is mounted onto the container allowing for hot-reloading. Make sure DEBUG is set to True for this to work! Be sure to follow through the steps shown in the stripe-listener container for initial setup with Stripe!

Deployment

A sample docker-compose.demo.yml is provided which I use to host in hosting the demo. DEBUG should be set to False when deploying as to not expose the URLs fro Celery Flower and the Django Silk Profiler. The local Inbucket container is not present as well so make sure to specify an external SMTP server to process emails properly.

URLs