The task given by the teacher:
- select an entity (My friend Mihai picked Guns for me)
- do a whole load of functionalities I tell you (written below)
- NextJS
- PostgreSQL
- Docker
- AWS
... and some other but these were the main ones π
- A dashboard-style web application that lets users register and make
CRUD
operations on Guns and Gun manufacturers - A completely working login system based on credentials, using JWT and cookies for safety
- Dockerized the entire application, the code runs using docker-compose
- Deployed on AWS (however it's not running at the moment due to obvious monetary reasons)
- Plenty of statistics for my chosen entity, such as charts, filtering, sorting, etc.
- To make the application more secure it makes use of environment variables which are NOT pushed here. Nothing important is hardcoded
- Tests for the backend endpoints
- Used Faker to populate a lot of entries and stress test the application
- 2 factor authentication
... and many more π
I liked the fact that we had the freedom to choose what framework to work in, what type of application to make, what entities to choose, and all the functionalities that were demanded from us to implement could be done whatever you pick.
π₯³ Although this took a lot of effort, it was a fun project.