Ask me about him. I'll answer and take you there.

Ask your own question
← Back to the page

The full story · Aug 2024 to Jan 2025 · solo

Track Your Attendance

The attendance app a third of my university used.

3,000+students in its database, most using it regularly
1 in 3students at the university, and more
75%the attendance line it helps you stay above
3 slimit on reading the login captcha

The hard parts

A portal behind a captcha

Problem
The official portal only opens after a login with a captcha.
What I did
A separate small service reads the captcha, with a 3-second limit.

Not hammering the university's server

Problem
Thousands of students refreshing would overload the portal.
What I did
Results are cached per student, with daily limits and a cool-down.

The maths the portal does not do

Problem
The portal shows a percentage, not what you can do about it.
What I did
It counts the classes left from the timetable, holidays and special working days, and tells you how many you can skip and how many you need.

A queue it did not need

Problem
I added a queue for portal scrapes, then a worker for it.
What I did
The queue lived in the server's own memory, which was the wrong design, and the load never needed one. I removed it within a month; each scrape now runs directly in its request.

Also in it

  • Live ongoing and upcoming classes with a countdown
  • A swipeable weekly schedule
  • An admin console for holidays, special working days and announcements
  • Installs on a phone like an app

Built with

GitTypeScriptHTML and CSSNext.jsTailwind CSSMongoDBJavaScriptFramer MotionRedux ToolkitWeb scrapingOCRNode.jsExpress

Honest gaps

It has no automated tests. That is the first thing I would add today.