Project 9 of ~34
🎯 Senior Year Sprint — Architecture
College application PM system. SvelteKit dashboard + Telegram reminders. Supabase + Upstash QStash. Essay prompt data from Common App API + scraped supplements.
🛠️ Tech Stack
| Component | Technology | Why |
| Dashboard | SvelteKit | Web UI for task management, school setup, essay drafting |
| Reminders | Telegram Bot (Deno) | Daily task lists, deadline alerts via Telegram |
| Backend | Deno 2 + Supabase | API + database |
| Essay Data | Common App API + Cheerio | Essay prompts, requirements from published sources |
| Scheduler | Upstash QStash | Daily task delivery (8am), weekly health check (Sunday) |
| Payments | Stripe | Season pass purchase |
🗄️ Data Model
| students |
| id | uuid | |
| telegram_chat_id | varchar(50) | Reminders |
| gpa | decimal | For safety/reach analysis |
| test_scores_json | jsonb | SAT/ACT scores |
| schools |
| id | uuid | |
| student_id | uuid (FK) | |
| name | varchar(255) | |
| type | enum('safety','target','reach') | |
| decision_type | enum('ED','EA','RD','Rolling') | |
| deadline_date | date | |
| application_url | varchar(500) | |
| health_score | integer (0–100) | Weekly computed |
| essays |
| id | uuid | |
| school_id | uuid (FK) | |
| prompt | text | |
| word_limit | integer | |
| current_draft | text | |
| word_count | integer | |
| status | enum('not_started','drafting','review','submitted') | |
← Requirements | All Projects | Presentation →