- List a job
- Details of the Job post
- Create a job post
- Update the job
- Delete the job
- Permissions (Authorization required, only superuser and the original author can delete)
- Authentication ( Registration and Login )
- Test Endpoints
- Test Coverage
- Webapp for Jobboard
following something called Test-Driven Development
- Frontend: I used Jinja2 as templating engine. And HTML, CSS, Bootstrap will drive frontend goals.
- API: FastAPI drive API, following good software development principles e.g. Test-Driven Development, versioning of code, Clean code principles to some extent.
- Pytest: obviously for testing and I also test coverage of application. Test coverage shows us what percentage of my code has been covered in unit tests.
- Git/Github: For versioning the application and in case something breaks, I 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, I make use of ORMs which makes use of Python class and converts the code to adapt to any popular database.
- Alembic: I meet alembic at the last few episodes, It is like git for the database! I make a table, now I want to revert some changes in my tables, then I 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. I can use SQLite, It is a file-based lightweight database.
click below to see the app:
the source code is here: