I have programmed a hypothetical school portal which consists of 5 pages, a login page, dashboard, bulletin board (for news posts), student profile and lastly a clubs page where the user can add new clubs and view their current ones on a timetable. This is my first web project and prior to this project, I had recently finished a course on Flask. In addition to this new content, I also learned HTML and CSS. Doing this project really helped me to grasp a better understanding of these new areas and use them confidently. Admitedly, it was a pretty challenging project considering I was teaching myself so much new content. In particulary, I really struggled with Flexbox, causing me to focus on developping other skills instead. However, I was able to untilise flexbox to a certain extent. Using sources like Geeks For Geeks and Codecademy (where I did the courses) also helped me to solve smaller problems within my code. One of my favourite parts of this project was being able to finally create a web interface, rather than running my program in the terminal. This is something that I have been wanting to achieve for years. I also enjoyed creating forms, using WTforms, and learning how to save the data into classes and display them in html files.s.
Production Process
Before beginning the coding aspect of the project, I started by brainstorming ideas for features to implement into the game. Originally, I planned to create a teacher portal in addition to the student one, but decided against this to ensure I was able to maintain a good standard for the student portal and fit within my time plan. I gradually built the project up from one page to another, ensuring that each page was at least close to completion before progressing. When creating a new page, I would start by creating a route and function, thinking about what parameters should be passed through (e.g., student_id). This step would be followed by the creation of an html file (which would inherit from base.html), with a corresponding css file for styling. I would think about what data would need to be presented and manipulated on this page. To help me with this, I would create new or use existing methods within the class System, which manages all the students. I used this process of implementation for all pages. Overtime, I found it easier and faster creating new pages..
Overall, despite the challenges I faced, I have come away from this project with a much better understanding of web and I am proud of myself for managing to implement OOP within this project too!