This repository contains my high school capstone project from 2013/14 - a web-based school management system I developed at age 17. Looking back at this code offers a glimpse into my early programming journey. While the implementation reflects my limited skill level at the time, it represents my first substantial exposure to web development.
GymNetz (german Gymnasium: high school, Netz: "network") was built on the then-ubiquitous LAMP stack (Linux and Apache, MySQL, PHP). The frontend was implemented using simple HTML, CSS and JS. AJAX was used for dynamic content loading.
The first part of the written component of my project is a comprehensive educational overview of the technologies used, basically explaining core web development concepts, covering everything from basic HTML tags to complex database relationships and asynchronous JavaScript patterns. The second part is the project documentation.
Working on this project exposed me to fundamental web development concepts:
- Database normalization and relationship modeling (users, classes, courses, exams, grades)
- Session management and basic security considerations (hashing, session authentication, protected access)
- Frontend interactivity, DOM manipulation and event handling
- traditional MPA paradigm and asynchronous data loading
- MVC-like separation of concerns
- Multi-user Authentication System - Login functionality with different access levels for students, teachers, and administrators, with session management.
- Exam Management - Teachers can create, edit, and schedule exams while students can view upcoming test dates organized by course.
- Grade Management - Allowing teachers to enter and modify grades while students can view their grades and calculated averages.
- Messaging - Conversation-based messaging system supporting threaded conversations with file attachment capabilities.
This high school project provided a practical introduction to web development basics. Working with the LAMP stack gave me foundational experience with databases, server-side logic, and client interfaces. This knowledge proved useful for other early programming interests, particularly when creating mods and server plugins for my Counter-Strike gaming community. While this project was simplistic by professional standards even back in 2013, it represents an important personal learning experience that planted the seeds for continued interest in programming and established a technical foundation that I've over the last decade built upon through exploration of other languages, frameworks and paradigms.