Skip to content

samatar26/recommendations

Repository files navigation

recommendations

Playground which will hopefully turn into a fully-fledged recommendation machine

Development

I'm of the opinion that the sooner you set up some linting, formatting, testing and continious integration, the easier it is to develop your application over time with a high degree of confidence things are working correctly.

In order to make sure the code is always of a high standard before merging it into main I'm using the following tools:

  • black - ensures consistent formatting throughout the code base
  • ruff - ensures code is syntactically correct and of a good standard (no unused variables, imports at the top, etc.)
  • pre-commit - ensures that every commit has been checked by both ruff and black
  • circleci - continious integration/deployment pipeline ensuring my code is fully working by running format, linting and tests
  • pytest - because tdd

The package manager I'll be using is pipenv, may possibly migrate to poetry due to its support for pyproject.toml

Server

I'll be using uvicorn as it's an extremely fast ASGI web server allowing me to handle a large number of connections simultaneously in an async manner. The web framework I'll be using is FastApi due to its async support, speed, ability to leverage type-hints, ease-of-use of the Pydantic data validation library and more!

Database

Postgresql is the database I'll be using to store the data. I'll be using alembic to handle database migrations and sqlalchemy as ORM. Alembic and sqlalchemy work really well together and allows me to auto-generate any database migrations just by running a simple command

Deployment

TBD

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors