Cloudflare Workers, Supabase (PostgreSQL), JavaScript, Claude API
Built and deployed a university-verified student platform gated behind institutional
email authentication, with dynamic per-school theming driven by email domain detection.
Designed and migrated a PostgreSQL schema across 26+ migrations, loading
6,700+ Western course records; implemented real-time course chat and row-level security
policies.
Engineered a syllabus parsing pipeline (Claude Haiku) that extracts deadlines from
uploaded PDFs and auto-populates a calendar at approximately $0.006 per parse.
Shipped weighted GPA tracking, flashcards, a PDF formula sheet generator, an algorithmic
study block scheduler, and an installable PWA, architected on serverless infrastructure
running at $0/month.
Atlas, built and running. The landing page is public. The dashboard sits behind institutional email authentication.
Try it without an account. The sign-in screen has a Fill in test credentials button. It opens the full dashboard: calendar, grade log, notes, AI study blocks and course chat.
SmartIcs – AI-Powered Study Planner
Python, Gemini API, Google Calendar API, Sports API
Built a full command-line Python application that integrates the Gemini API, Google
Calendar API, and SportsRadar API to automatically generate personalized study schedules
around a student’s syllabus, events, and favourite team’s games.
Designed a Gemini-powered study block generator scheduling 2–3 hours of daily
study starting 7 days before exams, escalating to 5–6 hour sessions the final 2 days
while avoiding conflicts with games; implemented Google Calendar OAuth2 to push color-coded
events to a live calendar.
Google Calendar is connected first.
The app asks for calendar access through Google Calendar OAuth2 at sign-in. Everything after that
depends on it, including the button at the end that writes every event straight into the
calendar.
How it works, start to finish
Step 1Connect a Google accountBefore anything else you sign in with Google. The app requests calendar access through Google Calendar OAuth2, and the badge in the corner turns to Google Calendar: Connected. That connection is what lets the final step write events straight into your calendar.Step 2Drop in a syllabus and pick a teamA course outline PDF goes in the drop zone, and Gemini reads it and pulls out every date it finds. 15 events out of this one. On the right you choose a league and a team, here the Blue Jays, and the app fetches their full season schedule.Step 3Add anything else, then generate study blocksPlain text works too: type “Meeting at 3pm on Friday September 18th 2026” and it becomes an event. One-off events like a final exam are added by hand. Then Gemini builds study sessions around the exams and the games.Step 4Review every event in one tableEverything lands in a single list, tagged by where it came from: Syllabus for parsed deadlines, Sports for games, Manual for anything typed in. 180 events here from one syllabus and one team.Step 5Study blocks are scheduled around the conflictsThe generator works backwards from each exam: 2–3 hours a day starting a week out, rising to 5–6 hours in the last two days, skipping any slot where a game is already booked.Step 6Push it to the calendarTwo ways out. Download .ics gives a file any calendar app can import. Upload to Google Calendar uses the connection from step one to write every event into your live calendar directly, no file handling at all.