Skip to content

NicolasMaskal/Futsal-Ultimate-Manager-BE

Repository files navigation

Futsal Ultimate Manager (Backend - Django)

Nico linkedin Nico github

Basic info about the project

Lint & test python django Code style: black Checked with mypy Imports: isort

Link to site: https://www.futsal-manager.tech

(Note: Feel free to use a tmp mail, when trying it out: https://mail.tm/en/)

The Futsal Ultimate Manager is a project consisting of a frontend built with React Typescript and a backend built with Django. The frontend code can be found on Github, while the backend code can be found here in this repo. The backend follows the best practices specified in the Hacksoftware Style Guide. Codebase was built on top of the Hacksoftware Cookiecutter Example.

Code Overview

  • The project uses Python 3.10 and the Django Rest Framework.
  • The code is formatted using Black. and imports are organized by Isort.
  • Type checking is done using mypy.
  • Project uses Github actions to run code checkers and tests.

Deployment

The project is hosted on DigitalOcean's App Platform, and a commit to the deploy branch triggers a deployment. The deployed version contains built React files, which are served statically using gunicorn and whitenoise.

Other Information

API documentation can be found at:

For authorization, the backend supports both HTTP-only cookies and JWT tokens.

I used Docker during local development, so I could have a postgresql database locally.

Email sending is done by using a simple Gmail backend.

Constants used for match/team/player/pack generation can be found here

Future improvements

  • Add tests.
  • Document the Swagger API docs.
  • Shift intensive tasks such as email sending to Celery.
  • Consider using SendGrid instead of Gmail backend.

More improvements are listed as issues in this repository.