Hey everyone, i will try to describe my humble cs50 final project which is full-stack web application developed as freshman. This project imitates reservation system where teachers (this website is focused on education) can create / delete lecture sessions entering proper inputs and students can attend. Main focus was on back-end rather than front-end except the homepage where i put some effort to get great homepage which may be good for first impression.
Techonologies employed:
-sqlite -html -css -flask
Features:
-create session -register session -monitor participants -take attendance
- mail verification after registering
I aimed to be user-friendly as much as possible. First you are directed to homepage where you see href's to external social media sites, login boxes and importantly register button. After registering (there is a mail validation to prevent unexpected behaviours). After logging in if you are a teacher or admin you can create and delete sessions with buttons above and you can take attendance after checking participants, whereas students only see register button for those created sessions.
I am not really big fan of front-end and sometimes css codes got messy but it is actually good mistake since that gave me an opportunity to come up with better design and css coding. After completing the project i realized that mongo was a better choice than sqlite since i built database vertically most of time rather than horizontally. So, strong side of sql (keys and association of different components) was not that helpful. Input checks might have been designed better.
template file, as name suggests, used to avoid redundancy and it holds fixed parts of website such as navigation bar etc. static folder contains nearly all elements related to front-end like styles.css and so on db file basically holds all database application.py is the part where all routing and directing checks are done helpers.py error-checkings and some required functions like isAdmin (to see if user is teacher or not) are implemented here Others all these html files under templates folder are basically different html files where names actually gives a idea