Git Product home page Git Product logo

futsal-ultimate-manager-be's Introduction

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.

futsal-ultimate-manager-be's People

Stargazers

 avatar

Watchers

 avatar

futsal-ultimate-manager-be's Issues

Add coins that will be gained after every match played. Coins can be used in a shop

There will be an endpoint on team/{id}/buy-pack with a body where pack type is stated

Pack types:
Bronze
Silver
Gold

Each pack consists of 3 players.
Bronze will be somewhere between (team_ovr -10, team_ovr)
Silver will be somewhere between (team_ovr -3, team_ovr +3)
Gold will be somewhere between (team_ovr, team_ovr +8)

Coins gained after match will depend on difficulty level
Formula 100 +(10*difficulty difference)

bronze pack will cost 100
silver pack will cost 200
gold pack will cost 400

After opening a pack, players will be added to the team.

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.