Four item types, forms, scholarships, grants and fee waivers, each with an amount, deadline and status. Three totals sit at the top: awarded, in pipeline, and submitted count.
One click adds the four forms every US applicant needs: FAFSA, CSS Profile, application fee waivers and a state grant application, pre-dated to their usual deadlines.
To do → In progress → Submitted → Awarded / Rejected. Tracking an item awards 20 XP; submitting one awards 60, once per item. Open items with deadlines appear on your dashboard radar.
Storage for résumés, test score reports, brag sheets and ID documents. PDF, image or Word, 8 MB maximum, categorised by type. Transcripts are deliberately not in this list: see below.
Only you. This is absolute in the current build:
Cache-Control: private, no-store.Storage limitation: files are stored as unencrypted blobs inside the application database. They are protected by access control, not by encryption at rest. A real deployment handling transcripts and government ID needs encryption at rest, a retention policy and audit logging. Do not treat the current build as compliant with any student-records regulation.
Students cannot upload a transcript. A transcript is the document a school issues about a student, so a student-supplied file is not the same artefact and cannot stand in for one. It is filed by a counselor from the console instead.
user_id, so it travels with their record, but with student_can_see = 0 and uploaded_by set to the counselor.student_can_see = 1, and the file route repeats the check, so this is not a hidden button.uploadDocument rejects kind = 'transcript' outright, because the form is not the boundary.org_id.