Frontend: We will be utilizing Jinja2 as our templating engine. And HTML, CSS, Bootstrap will drive our frontend goals.
API: FastAPI will drive our API, we will be following good software development principles e.g. Test-Driven Development, versioning of code, Clean code principles to some extent.
Pytest: obviously for testing and we will also test coverage of our application. Test coverage shows us what percentage of our code has been covered in unit tests.
Git/Github: For versioning our application and in case something breaks, we can revert to a previous state.
sqlalchemy: Say, you develop an application with Postgresql. Now, you give your code to your friend and he/she wants to use Mysql. That might require a lot of code changes in the application. So, instead, we make use of ORMs which makes use of Python class and converts the code to adapt to any popular database.
Alembic: We will meet alembic at the last few episodes, It is like git for the database! We make a table, now we want to revert some changes in our table, then we can use it.
Postgresql: Production grade database to store data. Feel free to use any other database and in case you don't want to install Postgres for whatsoever reason. We can use SQLite, It is a file-based lightweight database.