
Tech Track Final Project
I spent the first half of my year in Israel studying in a beginner full-stack course where we learned the basics of programming (mainly in python) from the ground up. In addition to the 10 days of sleepless nights I spent building it, my final project represents the outcome of over four months of hard work and dedication to learning something new. Even though it looks like something Chat GPT threw up, and even though there are surely a hundred improvements that could be made, I still feel a big sense of pride in closing this chapter of my programming journey.

Landing Page

View Students

Admin Editor

Landing Page
01
School Management System
As a beginner programmer, I found myself being interested in the interactions programs have with their dedicated databases. So, for my final project I decided to lean into this curiosity and dedicate myself to exploring the backend interactions that are so integral in all the programs we use, deciding to create a school management system for my old school.
02
Programming
To summarize the technical points, I used Flask in Python for backend logic, Jinja2 for creating dynamic web page templates, and SQLAlchemy for ORM to connect my application to a PostgreSQL database, which I managed using pgAdmin.

Database Methods

Database Configuration

Serverside Logic

Database Methods

03
Final Outcome
The program has two layers: regular interactions and admin interactions. Assigned during signup, regular users only have access to the basic viewing functions of the program — essentially, they can only see things like student, teacher, and class profiles, as well as enrollments and other student/faculty data. Although I would never hate on my regular patrons, the admin role is where things start to get really fun. You guessed it, admins have more permissions than regular users! With their (almost) omnipotent CRUD powers, admins can update data in the system, with add and delete functions available for every aspect of the program all the way from student data to — you guess it again — teacher and class data.
04
Reflection
Ultimately, it's safe to say that I learned a lot throughout this project, both about programming and myself. After more than 60 grueling hours over ten days, I was finally able to showcase my final product. Although it definitely has its quirks, I think it's quite robust in the actions that it can perform. Through the sheer amount of little tweaks and adjustments I had to make to an otherwise large assortment of repetitive interactions between user forms and the database (almost 1000 lines in just the logic), I feel like I can walk away feeling confident in my foundational back-end database abilities. Additionally, like many other difficult projects I've worked on, I found that even though programming can be extremely depressing at times, there's also something incredibly rewarding doing something right start to finish.
