You are browsing as a guest. Sign up (or log in) to start making projects!

afonso

@afonso

Joined May 31st, 2026

  • 18Devlogs
  • 4Projects
  • 4Ships
  • 76Votes
i like to code projects that i will use on a day to day basis, and that are fun!
Open comments for this post

1h 6m 1s logged

Hello!
The frontend now uses bun instead of npm, so it’s very fast now! If you have a profile picture in gravatar, that will now be your profile picture.
Also, School Tools has a new logo!

Bug fixes:

  • Calendar now displays correctly on mobile
  • DRY (Don’t repeat yourself) the code
0
0
8
Ship

This update majorly adds homework support. You can now create and view your homework! If you let it be overdue, it will also show you.
Some other updates include adding icons to subjects and some basic account settings. Making this was fun, and i found really interesting figuring out how to add fields to existing users in prod (since mongodb doesn’t have migrations)

  • 5 devlogs
  • 12h
  • 13.93x multiplier
  • 168 Stardust
Try project → See source code →
Open comments for this post

1h 9m 39s logged

I fixed some bugs around here and there and added basic support for the mobile UI.
Mobile UI support was largely done with OpenCode

0
0
54
Open comments for this post

2h 8m 30s logged

I added a new toggle so users can disable ICS generation. The functionality is off by default, tho users can manually enable it in the settings. Existing users will still have it on.

QOL things:

  • Change email change rate limit message
  • Styling issues
  • ICS generation now runs in another thread (api route)
  • fix: Busiest day off by one
  • Made more things use the local user timezone instead of the browser one
  • fix animation not showing up on ‘regenerate calendar links’ popup
0
0
12
Open comments for this post

4h 25m logged

Hi! hi!

The main point of this updated is that i added Homework support! :yay:
You can see all your homework in a new shiny homework page. I also revamped the ‘Todays schedule’ in the main dashboard, and added a new homework widget there too

A few QOL things:

  • Added toaster responses in many parts of the code
  • Calendar selection now uses the ‘Calendar’ item by shadcn instead of native OS /browser selector
  • bug fixes here and there
0
0
36
Open comments for this post

3h 13m 51s logged

New feature:
• You can now change the icons of your subjects. If you already had subjects prior to this, its icon will be set as BookOpen.

Bug fixes:
• added very janky admin endpoints + ui. UI was mostly done by ai because its not public and just needs to work. I made the endpoints myself, even tho they are a bit janky. Will impove in the future..
• added a resend verification link button (only available after 6h) and logout button in the /auth/verify/pending page..

0
0
15
Ship

School Tools is management platform for your study life. You can add your subjects, classes and evaluations. Building this project was so much fun, and I’m really proud of it. I found really challenging creating the ICS feeds and keeping them updated in a reliable way, but that was also fun to learn about.

  • 8 devlogs
  • 34h
  • 6.70x multiplier
  • 228 Stardust
Try project → See source code →
Open comments for this post

4h 1m 53s logged

So, i had OpenCode do a look around the codebase for vulnerabilities and bugs that i should fix before release. However, the edits were done by me. This devlog is basically that:

• fixed an IDOR vulnerability that allowed any authenticated user to uncancel any class by just having its ID. :rac_wtf: .
• when trying to log in with an account that does not exist, the api now raises a password incorrect error instead of user_not_found . .
• added rate limiting to /v1/auth/pwd (5 per minute) , /v1/auth/signup (20 per hour) and /v1/auth/verify (2 per minute).
• Improve email validation on account creation.
• Added password requirements on signup..
• Enforce email verified in endpoints.
• Fixed a vuln that allowed the ?next=//example.com param to redirect to any website after login.
• Added a FAQ in the calendar settings page ‘Why is my calendar not updating?’.
• Don’t allow class deletion if used by evaluation.
• Add loader and icon to the class deletion modal..
• Don’t allow subject deletion if used by class..
• Rename canceled to cancelled in many parts of the code..
• Ensure character count limit (8-50 in most places).
• Relax rate limits.
• [OpenCode] Created a migration worker.
• Migration to remove depreacted onboarding_status field..
• Made many things TZ aware and added an user timezone field in the IANA format..
• [OpenCode] Tried, and failed :heavysob: to add mobile support..
• Standernize responses in the valid_json decorator.

Many of the changes are non-visual, so i put the devlog image as the new FAQ.

0
0
14
Open comments for this post

5h 51m 46s logged

Hello!
I have added ICS integration support, so now you can add your School Tools calendar in any of your prefered calendars!
I started by making the job that generates the ICS per se. After that, i added API routes to integrate around it. I then integrated it into the frontend under /settings/calendar. There is also a tooltip in the normal calendar page!*

The way ICS feeds work is basically every time there is a DB edit (such as class creation for example) the user is marked as ‘dirty’. Then, the ICS job that runs every five minutes, gets every dirty user and updates their ICS feeds. It doesn’t really matter that it isn’t updated automatically, since the majority of calendar providers have a long TTL for ICS subscriptions. (Google Calendar has ~12h TTL for example!)

I also added a README.

*Frontend integration was heavily AI assisted, but i supervised it and edited some things to ensure code quality.

0
0
19
Open comments for this post

1h 49m 23s logged

Hi! Recent updates:

  • Added evaluation API routes and support in the UI
  • Evaluations now show up in the calendar view
  • added page names
  • disabled homework (it’s coming in a future update!)
  • small bug fixes
0
0
9
Open comments for this post

4h 39m 1s logged

  • Added a scheduler
  • WIP onboarding (import classes, evaluations, etc)
  • Added subject routes and models.
  • Added subjects in the UI under settings*
  • adjusted some sentry configs
  • bug fxes
  • changed the admin icon
    *This had a lot of opencode assistance making it.
0
0
12
Open comments for this post

3h 6m 51s logged

  • Fix: Show real error messages in API
  • Show real IPs on sentry/logs when behind reverse proxy
  • Fix the redirect loop when stale cookie
  • Let admins clear user caches from redis
  • Add event models (classes, evaluations, schedule)
0
0
6
Open comments for this post

8h 2m 9s logged

Okay, looong devlog.

  • Made a backend (partially reused from old project)
  • Email verification on account creation
  • Dashboard now loads real user data
  • verify email/login/signup email pages*
  • Added sentry to both prod and dev
  • sentry analytics
  • Added logo and name to sidebar*
  • page names and favicon
  • lots of try and fail docker deployment*
  • -> assisted with AI (OpenCode)
0
0
49
Ship

I made a slack bot that wishes people a happy birthday on the #hacky-birthdays channel. It was a bit challenging since it was my first real slack bot that i made. I learned a lot, especially how weird slack interaction handling is.

  • 1 devlog
  • 4h
  • 4.18x multiplier
  • 19 Stardust
Try project → See source code →
Open comments for this post

4h 26m 43s logged

A slack bot that celebrates people’s birthdays!

  • Created the slack bolt app (wow!)
  • made the modal views and interactions handling
  • /birthday slash command with respective config and delete sub commands.
  • Cron job that runs every hour sending birthday messages to the #hacky-birthdays channel
  • Added a ping group that is pinged on every birthday message
  • Some tweaks and bug fixes
  • Fixing some prod-only bugs (prod uses slack event webhooks, while dev uses socket mode)
1
0
38
Open comments for this post

4h 55m 26s logged

Hi. I have done a few things:

  • Part of parts (no pun intended lol). Create and get all parts
  • UI integration for the above (wip)
  • (WIP) Categories. (model & tools)
0
0
3
Loading more…

Followers

Loading…