101Loop/drf-user

This Django User Model is customised user model keeping in mind the practical need (esp. in India)

django
django-admin
django-api
django-application
django-apps
django-rest
django-rest-framework
django-user
django-user-management
django2
hacktoberfest
otp
otp-verification
python
registration-system
rest-api
signup-flow
user-management

Build Status codecov Downloads Downloads Code style: black pre-commit.ci status Documentation Status Documentation Coverage

Django REST Framework - User

One of the winners of PyCharm Project of the Decade Competition


User APP for Django REST Framework with API Views.

DRF User is a Django app that overrides default user app to provide additional attributes and functionalities. The current stable version includes:

  • JWT Support (Using Simple JWT)
  • Mobile Number
  • Single field for full name
  • REST API to register
  • REST API to login
  • MultiModelBackend: User can login using either of mobile, email or username
  • REST API to login with OTP (Same API endpoint as for OTP Verification; Set is_login: true while sending JSON request)
  • OTP Verification for mobile and email
  • API to register / login with OTP (no pre-registration required)
  • API to set user's profile image
  • Mail sending feature upon successful registration
  • SMS sending feature upon successful registration
  • Change Password
  • Update Profile
  • Generic Configuration based on settings.py
  • Signal based mails
  • Mail based activation (optional alternative for OTP based activation)
  • Social Auth Endpoints(Login using fb/google) (WIP)

Documentation


  • For more information on installation and configuration see the documentation at: https://drf-user.readthedocs.io/

Example


To get the example project running do:

  • Clone this repo shell $ git clone https://github.com/101Loop/drf-user.git
  • Go to example folder in newly created directory drf-user shell $ cd drf-user/example
  • Create and activate virtual environment.
  • Install requirements shell (.venv) $ pip install -r requirements.txt
  • Run testing server: shell (.venv) $ python manage.py runserver

Take a look at http://localhost:8000/swagger. Swagger will list all the APIs of drf-user.

Contributing


Stars
155
0.65% more than last month
Forks
70
Open Issues
12