In this repo I intend to dive into the intricacies of FastApi framework, while following along to Corey Schafer's guide.
Core technologies learnt:
- using jinja2 templates
- styling with bootstrap
- validation and error handling
- pydantic schemas & models for data validation
- using SQLAlchemy ORM
- performing CRUD(Create, Read, Update, Delete) operations
- making your app asynchronous
- routers with APIRouter
- forms
- authentication: registration & login
- authorization: protecting routes
- file uploads: image processing , validation & storage
- pagination
- password resets & background processes
- database migrations with alembic &
PostgreSqlMariaDb - moving files to the cloud with AWS S3 & Boto
- testing with pytest
- deployment with nginx & custom domains
- deployment with docker & serverless containers
- thorough modularization of the application earlier on. Was accustomed to the good old factory settings from flask, hence applied that methodology here.
- implement code reusability by defining a "utils" directory, where I placed small Classes & functions for reuse.
- do tokens expire even when a user is active? figure out to to see if user is active in the frontend and prolong token expiration
- implement oauth with google
- add protected admin only routes for admins only
- add an admin panel
- used Resend instead of MailTrap
- when user is logged in and they change their password, all prior sessions must be terminated. for security
- use a taskque for emails, although not critical. e.g Celery, Rabitt Mq
- use MariaDB+aiomysql instead of Postgres+pscoppg. why?