Git Product home page Git Product logo

drf-launchpad's Introduction

DRF Lauchpad

image image image image image


⚠️ IMPORTANT: This project is still under development. It is not ready for production yet, as it might introduce breaking changes abruptly. Use it at your own risk.


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

Roadmap:

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

Documentation:

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.

See also:


drf-launchpad's People

Contributors

ramonkcom avatar

Stargazers

 avatar

Watchers

 avatar

drf-launchpad's Issues

Improve settings organization

[ ] add preffix to django settings files (e.g. 'django_db.py', 'django_i18n.py', etc.)
[ ] split settings/apps.py into django_apps.py, django_middlewares.py, django_templates.py
[ ] add comments to config/settings/init.py
[ ] remove migrations from repository and add it to .gitignore

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.