Introduction
What is Friedolyn?
Friedolyn is a client-side desktop application that allows students at Friedrich Schiller University Jena to automatically monitor their grades in the Friedolin system.
Why Friedolyn?
Friedolin does not notify students when they receive new grades or when their grades change. Friedolyn solves this problem by regularly logging in to Friedolin and checking for new grades. If new grades are found, Friedolyn sends a notification to the student, for example via e-mail.
How does Friedolyn work?
The student downloads Friedolyn on their computer, provides it with their Friedolin login credentials and lets it run continuously in the background. Friedolyn then emulates the student’s behaviour as if they were browsing Friedolin in a web browser, by sending pre-defined HTTP requests to the Friedolin server and parsing the responses based on a-priori knowledge of the HTML document structure.
Why not a web server?
- Running a web server costs money and requires maintenance.
- Storing all the students’ Friedolin login credentials on a web server poses a security risk and has legal implications in terms of data protection.
- If the web server goes down, students will not receive notifications about their grades.
- Providing services to thousands of students requires a lot of resources, would increase cost dramatically and could lead to performance issues.
- Flooding the Friedolin server with requests from a single IP address would be indistinguishable from a DoS attack, could bring the Friedolin server down and might lead to the Friedolyn server being blocked.
Why not a mobile app?
- The developers have zero experience in mobile app development.
- There does not seem to be a decent way to support all the different mobile operating systems (Android, Ubuntu Touch, iOS, iPadOS etc.) with a single code base.
- Smartphones nowadays heavily restrict background processes, which would make it impossible for Friedolyn to continuously monitor grades.
Why Java and not my favourite, trendy hipster language?
Java is object-oriented, strongly typed, platform-independent and safe.
Why not C or C++?
C is a burning dumpster of evil type-coercions, pointless pointers and assembly witchcraft, while C++ is nothing but a footgun on steroids.
Why not Pascal?
It’s the 21st century.
Why not Haskell?
Sorry, we don’t own a high-performance computing cluster with dozens of Terabytes of RAM, just to compile everything into a binary.
Why not JavaScript?
Are you f***ing serious???
Why not Python?
🤡 🤡 🤡