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

School Tools

  • 8 Devlogs
  • 34 Total hours

Notion sucks in so many ways for school automations and isn't as feature rich as I need. I'm building an alternative to it so it, that i will actually use in my day-to-day life.

Ship #1 Pending review

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
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
7
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
16
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
5
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
9
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
4
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
46

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…