DRF Lauchpad is a boilerplate for quickly starting new RESTful API projects using Django and Django Rest Framework (DRF). It provides all the basic code and structure for developing RESTful API with Django and DRF, such as:
🥸 Easy to customize and extend user model that:
- Uses email as username
- Supports multiple emails
- Keeps personal data in a separate model
- Object level permissions
- Has all signals in place
🔌 Easy to customize and extend API endpoints for user management, including:
- Signup endpoint that requires email confirmation¹
- Endpoint for asking new confirmation email¹
- Endpoint for confirming email
- Endpoint to add new email addresses¹
- Endpoint to set a email address as primary (for login)
- Endpoint to remove email addresses
- Endpoint to update user data
- Endpoint for asking password recovery¹
- Endpoint for safely resetting password
¹ These endpoints will send emails to the user, so you have to configure the email service of your choice to make them work. You can find the instructions here.
🔒 API for JWT authentication, with:
- Login endpoint
- Token renewal endpoint
- Token verification endpoint
🍒 Nice extra features, such as:
- Swagger documentation with DRF Spectacular already configured
- Django Guardian already configured for object level permissions
- Factories for all models using Factory Boy to make testing easier
- Test cases set up for all models, managers and endpoints
- Admin customized for the custom user model, supporting multiple emails and personal data
- Settings split, organized and documented in multiple files for easier maintenance
The following features are planned for the next steps:
- Authentication via Google
- Authentication via Facebook
- Authentication via Twitter
- Authentication via Github
- Documentation using MkDocs or Sphinx
Most of the things in the project are obvious, but I highly recommend that you read the documentation to better understand the project structure and how things were designed to work.
Of course, you don't need to read all the sections from top to bottom. They are meant to be as independent from each other as possible so you can consult the sections as you go, according to your needs.
- Quick start
- Project structure
- Custom user model
- Permissions
- Email sending
- Custom settings and flags
- Changelog
- Licence
See also: