Original Idea
Study Group Match A mobile app that matches students by schedule and study style, then opens a quiet room.
Product Requirements Document: StudySync (2026)
1. Executive Summary
StudySync is a specialized mobile application designed to bridge the gap between solo studying and disorganized group sessions. By leveraging a course-aware matching algorithm that accounts for learning styles (Visual, Auditory, Kinesthetic) and real-time availability, StudySync connects students from the same institution into hyper-productive "Quiet Rooms." Featuring integrated Pomodoro timers, collaborative whiteboarding, and LMS synchronization, StudySync transforms the isolated academic experience into a synchronized, focused community.
2. Problem Statement
Students often struggle with two distinct issues: the "loneliness of the long-distance learner" (leading to burnout) and the "inefficiency of group study" (leading to distraction). Current social platforms are too broad, and LMS tools are too administrative. There is no dedicated space that matches peers based on how they learn and when they are free, while providing the technical scaffolding (synchronized timers/focus modes) to ensure that once matched, they actually stay on task.
3. Goals & Success Metrics
- Match Quality: 85% of users report "Highly Compatible" partners after 3 sessions.
- Focus Completion: 70% of initiated Quiet Room sessions complete at least 2 Pomodoro cycles (50 mins total).
- Retention: 40% Week-4 retention for users who complete the onboarding quiz.
- Institutional Trust: 100% of matches occur within verified
.edudomains.
4. User Personas
- "The Overwhelmed Undergrad" (Alex): Needs a partner for Organic Chemistry. Alex is a Kinesthetic learner who gets distracted by social media and needs the "Quiet Room" focus lock to stay disciplined.
- "The Professional Candidate" (Sarah): Studying for the CPA while working full-time. Needs late-night sessions matched strictly by iCal availability and syllabus progress.
- "The Graduate Researcher" (Dr. Marcus): Looking for deep-work peers to write a dissertation. Needs long-duration focus sessions without voice/video, just "body doubling" presence.
5. User Stories
- As a student, I want to verify my account via my university email so that I only match with peers from my own school.
- As a busy learner, I want to sync my Google Calendar so the app only suggests study groups during my actual free blocks.
- As a visual learner, I want to be matched with others who use diagrams and whiteboards so we can solve problems efficiently.
- As a group member, I want a synchronized Pomodoro timer so that we all take breaks at the same time and avoid interrupting each other.
6. Functional Requirements
6.1 Authentication & Onboarding
- Email Verification: Restrict registration to
.edudomains using Firebase Identity Platform Blocking Functions. - Learning Style Assessment: A mandatory 10-question quiz (VARK model) to categorize study preferences.
- LMS Integration: Pull enrolled courses automatically via Canvas/Blackboard APIs.
6.2 Matching Engine
- Schedule Synchronization: Support for iCal/Google/Outlook via
expo-calendar. - Algorithm: Match users based on
Course ID+Learning Style+Availability Overlap. - Discovery: Suggest 3-5 compatible peers with "Compatibility Score" percentages.
6.3 Virtual Quiet Room
- Synchronized Timer: Shared Pomodoro (25/5 focus/break) using Socket.io server-authoritative time.
- Focus Mode: Integrated phone notification locking (via Native Modules).
- Presence: Real-time "Currently Focused" status indicators.
- Whiteboarding: Collaborative canvas using
react-native-skia.
7. Technical Requirements
7.1 Tech Stack (2026 Standards)
- Frontend: React Native 0.83.1 (utilizing React 19.2 features like
useEffectEventand<Activity>). - Backend: Node.js v24.13.0 (LTS) with Express 5.2.x.
- Real-time: Socket.io 4.8.3 (using WebTransport for low-latency sync).
- Database: PostgreSQL 18.1 (utilizing B-tree Skip Scans and
WITHOUT OVERLAPSrange types). - Authentication: Firebase Auth with Identity Platform (Gen 2 Cloud Functions).
- Infrastructure: AWS Elastic Beanstalk (ALB configured for WebSockets).
7.2 Core Integrations
- LMS: Canvas API (Course Progress/Syllabus endpoints) & Blackboard Ultra REST API.
- Calendar:
expo-calendarwithrrule.jsfor recurring schedule logic. - UI Performance:
@shopify/flash-listfor high-performance scheduling views.
8. Data Model
User Entity
| Attribute | Type | Description |
| :--- | :--- | :--- |
| id | UUID | Primary Key |
| email | String | Verified .edu address |
| learning_style | Enum | Visual, Auditory, Kinesthetic, Read/Write |
| availability | tstzrange[] | Postgres 18 range types for free blocks |
| institution_id | String | Extracted from email domain |
StudyGroup Entity
| Attribute | Type | Description |
| :--- | :--- | :--- |
| id | UUID | Primary Key |
| course_code | String | e.g., "CS101" |
| members | UUID[] | Array of User IDs |
| timer_state | JSONB | Current Pomodoro phase and timestamp |
9. API Specification (Partial)
POST /api/v1/sessions/sync-timer
Description: Synchronizes a shared timer across a group.
- Request:
{ "groupId": "uuid", "action": "START", "duration": 1500 } - Response:
{ "serverTimestamp": 1735689600000, "scheduledStart": 1735689600200 }
GET /api/v1/matches
Description: Returns compatible study partners.
- Query Params:
courseId,minOverlapMins - Logic: Uses Postgres 18 Skip Scans on
(course_id, availability)index.
10. UI/UX Requirements
- Performance: All list views (peers/schedules) must maintain 120fps using FlashList.
- Design System: Dark-mode focused to reduce eye strain during late-night study sessions.
- Visual Feedback: Use "Dead Reckoning" for the timer—local clock UI interpolates to server time every 60s.
11. Non-Functional Requirements
- Latency: Timer drift between participants must not exceed 30ms.
- Security: End-to-end encryption for group chat; domain-based isolation to prevent cross-university matching.
- Scalability: Support 10,000 concurrent Socket.io connections per Elastic Beanstalk instance.
12. Out of Scope
- In-app video calling (deferred to "Nice-to-Have" or Zoom integration).
- Tutor marketplace or paid homework help.
- Support for non-academic (.com/.org) email addresses.
13. Risks & Mitigations
- Risk: University spam filters blocking verification emails.
- Mitigation: Implement DMARC/SPF/DKIM and use a "Double-Action" verification landing page.
- Risk: Performance lag in collaborative whiteboards.
- Mitigation: Utilize
react-native-skiafor GPU-accelerated rendering.
14. Implementation Tasks
Phase 1: Project Foundation
- [ ] Initialize React Native 0.83.1 project with New Architecture enabled
- [ ] Setup Node.js v24.13.0 environment with Express 5.2.x
- [ ] Configure PostgreSQL 18.1 with
pg_roaringbitmapextension for matching - [ ] Deploy Firebase Identity Platform with
.edudomain-blocking function
Phase 2: Core Matching Logic
- [ ] Build VARK Learning Style Assessment UI
- [ ] Implement
expo-calendarsync withrrule.jsfor conflict detection - [ ] Create Postgres schema using
tstzrangeandWITHOUT OVERLAPSconstraints - [ ] Develop the matching algorithm API with B-tree Skip Scan optimization
Phase 3: Quiet Room & Real-time
- [ ] Setup Socket.io 4.8.3 server with WebTransport support
- [ ] Implement Authoritative Server-Clock for Pomodoro sync
- [ ] Build Focus Mode native module to suppress notifications
- [ ] Integrate
react-native-skiafor basic collaborative sketching
Phase 4: LMS & Integration
- [ ] Implement OAuth2 flow for Canvas and Blackboard
- [ ] Build syllabus parser using
cal-parserfor ICS files - [ ] Create "Study Streak" gamification logic with PostgreSQL Materialized Views
- [ ] Conduct load testing for WebSocket synchronization across 5,000 concurrent users