Uses Django framework to serve following:
- Sign-in/Sign-up features.
- Auto-generated admin interface on top of ORM.
Uses Django REST framework for:
- Auto-generated REST API on top of ORM.
Uses django-rest-auth and django-allauth to provide REST endpoints for Sign-in/Sign up features.
Uses following to build custom user-facing application:
- React as a framework for how things look and automatically display data on its change.
- Material UI as a library of commonly used components.
- Formik and formik-material-ui to Material UI for handling forms.
- Yup for forms schema validation.
- React-Redux, Redux-Actions and Redux-Saga as a solution for state management.
- Axios as an HTTP client.
Uses Docker to ease development and production setup.
Uses Nginx as a proxy and assets server.
Uses MySQL as a RDBMS. Might be changed to an alternative RDBMS later thanks to Django ORM.
- Setup docker on Linux/Mac machine. Haven't checked on Windows, you are kindly welcome to try.
- Download source code from this repo.
- Run command
docker-compose up -d --buildto build images and up containers. - Run command
docker-compose exec backend python manage.py migrateto apply database migrations. - Site should be accessible on http://localhost where http://localhost/admin application can be found.
- Run command
docker-compose exec backend python manage.py createsuperuserto create admin user if needed. - Also, you can look at available API endpoints via http://localhost/api/.
Note that few authentication related API's are not listed there due to specifics of Browsable API application and 'django-rest-auth' package implementation.
- Run command
docker-compose exec frontend yarn startto have http://localhost:3000 for development of SPA application with live reload feature. - Python application also uses live reload, no dedicated processes and ports needed.
- You can sign up (no confirmation emails for the moment)
- You can sign in either with previously signed up account or superuser account created from
createsuperuser(see command above) - You can sign out then
- You can change First and Last name in a Profile (email and username are not available now)
- You can also change an Avatar image there
To be continued.