Original Idea
Exam Prep Sprint A web app that ingests a syllabus and auto-builds a daily study plan with checkpoints.
Product Requirements Document: Exam Prep Sprint
1. Executive Summary
Exam Prep Sprint is an AI-native productivity platform designed to eliminate the "planning paralysis" students face when confronted with complex academic syllabi. By leveraging multimodal layout-aware parsing and neuro-symbolic scheduling logic, the app transforms static PDF/text documents into dynamic, personalized daily study plans. The platform integrates seamlessly with existing calendars and provides visual progress tracking to ensure students remain on schedule for their exams.
2. Problem Statement
Students and professional candidates often struggle to break down high-level course objectives into manageable daily tasks. Traditional planning is manual, time-consuming, and fails to adapt when a student falls behind. This leads to inefficient study habits, cognitive overload during the planning phase, and high-stress "cramming" in the days leading up to major assessments.
3. Goals & Success Metrics
- Primary Goal: Reduce the time spent planning a semester-long study schedule from hours to under 60 seconds.
- Success Metrics:
- Task Completion Rate (TCR): % of generated study tasks marked as complete by users. Target: >70%.
- Plan Retention: % of users who follow a generated plan for more than 14 days.
- Parsing Accuracy: % of syllabus dates and topics correctly extracted without manual correction. Target: >95%.
- User Satisfaction (CSAT): Average rating of 4.5/5 for plan "manageability."
4. User Personas
- University Student (Sarah): Overloaded with 5 different courses; needs to see how midterms overlap and requires a plan that adjusts to her part-time job.
- CPA Candidate (Mark): Working full-time; needs to maximize 2-hour daily study windows and requires high-fidelity parsing of complex professional certification manuals.
- Self-Taught Learner (Javier): Using online resources (Coursera/edX); needs structure for unstructured text and "knowledge checkpoints" to validate progress.
5. User Stories
- As a student, I want to upload my PDF syllabus so that I don't have to manually type out every topic and deadline.
- As a busy professional, I want to input my daily available hours so that my study plan is realistic and achievable.
- As a visual learner, I want to see my progress on a timeline so that I can feel motivated by my momentum.
- As a forgetful user, I want my study tasks to sync with my Google Calendar so that I get reminders on my phone.
6. Functional Requirements
6.1 Syllabus Ingestion & Parsing
- FR-1: Support for PDF and raw text uploads.
- FR-2: Multi-modal parsing using Docling or Marker to preserve table structures (e.g., weekly schedules).
- FR-3: AI-driven extraction of Topics, Sub-topics, Weighting, and Deadlines via Gemini 2.5 Flash.
6.2 Dynamic Schedule Generation
- FR-4: Neuro-symbolic scheduling engine that combines LLM reasoning (for topic difficulty) with constraint-based logic (for time-slotting).
- FR-5: User-defined constraints: Exam date, "Blackout dates" (holidays), and daily study hour limits.
- FR-6: Spaced Repetition logic: Automated scheduling of "Review" tasks for previously covered topics.
6.3 Dashboard & Tracking
- FR-7: Daily "Sprint View" showing specific tasks for the current 24-hour period.
- FR-8: Visual Timeline (using React-Chrono) showing the path from today to the exam.
- FR-9: Milestone Checkpoints: Automated mini-quizzes or reflection prompts at the end of major modules.
6.4 Integrations
- FR-10: Bi-directional sync with Google Calendar and Outlook using
iCalUIDto prevent duplication. - FR-11: Notification system for upcoming checkpoints.
7. Technical Requirements
7.1 Tech Stack (2026 Standards)
- Frontend: Next.js v16.1.x (Stable Turbopack, React 19/20), Tailwind CSS v4.1.x (Oxide Engine).
- Backend API: Python (FastAPI v0.128.x) for AI processing; Node.js v24.x (LTS) for business logic.
- Database: PostgreSQL (via Supabase) with Row Level Security (RLS).
- Authentication: Clerk (using JWT template integration with Supabase).
- Task Queue: AWS SQS with FastAPI producers and ECS Fargate workers for long-running PDF extractions.
7.2 AI & Data Processing
- LLM: GPT-4o for structured JSON output and Gemini 2.5 Flash for cost-effective vision-based parsing.
- Parsing Pipeline: PDF → Docling (Markdown) → GPT-4o (JSON Schema) → Postgres.
7.3 Infrastructure & Security
- Storage: AWS S3 with Pre-signed URLs for uploads.
- Scanning: AWS GuardDuty Malware Protection for S3 enabled to scan syllabi upon ingestion.
- Deployment: Vercel (Frontend), AWS App Runner/ECS (Backend).
8. Data Model
8.1 Entities
| Entity | Attributes | Relationships | | :--- | :--- | :--- | | User | id, email, clerk_id, daily_limit_mins | 1:N with Syllabus | | Syllabus | id, file_url, raw_markdown, status (PENDING/PROCESSED) | 1:1 with StudyPlan | | StudyPlan | id, start_date, exam_date, metadata (JSON) | 1:N with StudyTask | | StudyTask | id, topic_name, duration, is_completed, scheduled_date | N:1 with StudyPlan | | Checkpoint | id, trigger_date, completion_status | N:1 with StudyPlan |
9. API Specification
9.1 Key Endpoints
POST /api/v1/syllabus/upload: Generates a pre-signed S3 URL.POST /api/v1/plan/generate: Triggers the async parsing/scheduling worker. Returnsjob_id.GET /api/v1/plan/status/{job_id}: Polls for completion status of the AI plan.PATCH /api/v1/tasks/{task_id}: Marks a task as complete and triggers a re-calc if necessary.GET /api/v1/calendar/sync: Initiates OAuth flow for Google/Outlook.
10. UI/UX Requirements
- Theme: "Focus Mode" aesthetic—minimalist, high contrast, using CSS variables via Tailwind 4.1.
- Components:
- Progress Radars (Nivo): Visualizing competency across syllabus modules.
- Timeline View (React-Chrono): Vertical "journey" map of the study sprint.
- Drag-and-Drop: Ability to move tasks between days (updating the Postgres
scheduled_date).
- Accessibility: WCAG 2.1 Level AA compliance; full keyboard navigation for task management.
11. Non-Functional Requirements
- Performance: Syllabus parsing must complete in < 30 seconds for files up to 50 pages.
- Availability: 99.9% uptime; fail-safe scheduling if the LLM API is down (fallback to basic heuristic scheduling).
- Security: TBAC (Tag-Based Access Control) on S3 prevents syllabus reading until GuardDuty scan =
NO_THREATS_FOUND.
12. Out of Scope
- Internal PDF annotation tools (users read PDFs in their own viewers).
- Direct hosting of study materials (videos/textbooks).
- Social networking features (initially).
13. Risks & Mitigations
- Risk: LLM "hallucinates" exam dates or misses topics.
- Mitigation: User "Review & Confirm" step after parsing but before final plan generation.
- Risk: API Rate Limiting (OpenAI/Google).
- Mitigation: Implement exponential backoff and localized caching of generated plans.
- Risk: Malicious PDF uploads.
- Mitigation: GuardDuty Malware scanning + S3 bucket policies to block unscanned files.
14. Implementation Tasks
Phase 1: Project Setup & Infrastructure
- [ ] Initialize Next.js 16.1.x project with Tailwind CSS 4.1.x (Oxide engine).
- [ ] Setup Supabase project and define RLS policies for
requesting_user_id(). - [ ] Configure Clerk Auth with the Supabase JWT template.
- [ ] Provision AWS S3 bucket with GuardDuty Malware Protection enabled.
- [ ] Set up FastAPI 0.128.x boilerplate with
aioboto3for async AWS communication.
Phase 2: Syllabus Ingestion Engine
- [ ] Implement S3 Pre-signed URL generation endpoint.
- [ ] Integrate Docling for high-fidelity PDF-to-Markdown conversion.
- [ ] Build the "Markdown-to-JSON" pipeline using Gemini 2.5 Flash with structured output.
- [ ] Create AWS SQS queue for handling asynchronous parsing jobs.
- [ ] Implement a polling mechanism/webhook for the frontend to detect "Scan Complete" status.
Phase 3: Neuro-Symbolic Scheduler
- [ ] Build the logic to atomize syllabus topics into 45-90 minute tasks.
- [ ] Develop the constraint solver to map tasks to calendar slots based on
dailyStudyLimit. - [ ] Implement Spaced Repetition logic (FSRS algorithm) for review task insertion.
- [ ] Create the "Re-plan" trigger for when a user misses a deadline.
Phase 4: Dashboard & Calendar Integration
- [ ] Build the Daily Sprint dashboard using Recharts for progress visualization.
- [ ] Implement the Interactive Timeline using React-Chrono.
- [ ] Integrate Google Calendar API and Microsoft Graph API (Outlook).
- [ ] Develop the
iCalUIDmapping logic to prevent duplicate event syncs.
Phase 5: Security & Optimization
- [ ] Implement S3 Bucket Policy for Tag-Based Access Control (TBAC).
- [ ] Add Zod validation to all Server Actions for "Zero Trust" data handling.
- [ ] Conduct performance testing on 100+ page syllabus documents.
- [ ] Set up CloudWatch alarms for SQS queue age and worker OOM errors.