StudyMatch - AI-Powered Study Group Matcher
Find your perfect study group - Get matched with compatible university students in your course based on multiple factors for better study outcomes.
π― Features
Smart Matching Engine
- Course-based matching: Exact course/module matching required
- Schedule compatibility: Overlapping time slot analysis
- Study style alignment: Active, Passive, or Mixed styles
- Grade goal matching: High achiever vs. Pass-focused
- Location preference: Library, Home, or Campus spaces
- Compatibility scoring: 0-100% compatibility scores for transparency
User Profile System
- University verification: .ac.uk email required
- Comprehensive preferences: Study habits, goals, and availability
- Weekly schedule input: Calendar-style availability tracking
- Work ethic signals: Self-reported consistency and commitment
Group Dashboard
- Assigned study groups: 2-4 highly compatible students
- Member profiles: View study styles and preferences
- Compatibility insights: Clear scoring with breakdown
- Group health tracking: Activity-based group health indicator
Communication
- Async messaging: Simple group chat (no real-time required)
- Group notifications: Session reminders and updates
- Member coordination: Shared schedules and meeting planning
Retention Features
- Study streaks: Track consecutive study days
- Attendance check-in: Simple session attendance tracking
- Re-match option: Leave group and find new matches
- Group health score: Based on activity and attendance
ποΈ Tech Stack
Frontend
- Expo (React Native for mobile-first experience)
- React Navigation (Tab-based navigation)
- AsyncStorage (Local data persistence)
- React Hook Form (Form management)
- Zustand (State management)
- Expo Router (File-based routing)
Backend
- FastAPI (Python web framework)
- Motor (Async MongoDB driver)
- Pydantic (Data validation)
- Google OAuth (via Emergent Auth)
Database
- MongoDB (Document database)
- Collections: users, user_sessions, groups, messages, attendance_sessions
π± App Structure
app/
βββ frontend/
β βββ app/
β β βββ (tabs)/ # Main tab screens
β β β βββ index.tsx # Home/Dashboard
β β β βββ groups.tsx # Group details
β β β βββ messages.tsx # Group chat
β β β βββ profile.tsx # User profile
β β βββ index.tsx # Landing page
β β βββ auth-callback.tsx # OAuth callback
β β βββ onboarding.tsx # Profile setup
β β βββ _layout.tsx # Root layout
β βββ contexts/
β βββ AuthContext.tsx # Auth state management
βββ backend/
βββ server.py # FastAPI backend
π Getting Started
Prerequisites
- University email (.ac.uk domain)
- Google account for authentication
Installation
-
Access the app via the preview URL or Expo Go QR code
-
Sign in with Google using your university email
- Complete onboarding:
- Enter university and course information
- Set study preferences (style, goals, location)
- Add weekly availability slots
- Submit profile
- Find your match:
- Tap βFind Matchesβ on the home screen
- System matches you with 1-3 compatible students
- Group created automatically with compatibility score
- Start studying:
- View your group in the Groups tab
- Message your group in the Messages tab
- Check in to sessions for streak tracking
π§ Development
Backend Testing
All backend endpoints have been tested and verified:
- β
Authentication (Google OAuth)
- β
User profile management
- β
Matching algorithm
- β
Group management
- β
Messaging system
- β
Attendance tracking
- β
Streak calculation
API Endpoints
Authentication
POST /api/auth/session - Exchange session_id for user data
GET /api/auth/me - Get current user
POST /api/auth/logout - Logout user
User Profile
GET /api/users/profile - Get user profile
PUT /api/users/profile - Update profile
Matching
POST /api/matching/find-matches - Find compatible matches
Groups
GET /api/groups/my-group - Get userβs group
POST /api/groups/leave - Leave current group
Messaging
POST /api/messages/send - Send message
GET /api/messages/group/{group_id} - Get messages
Attendance
POST /api/attendance/checkin - Check in to session
GET /api/attendance/streak - Get study streak
π¨ Design Philosophy
Mobile-First
- Thumb-friendly UI: All actions within easy reach
- Clean design: Forest green (#2E7D32) with neutral tones
- Touch targets: Minimum 44x44pt for accessibility
- Responsive: Works on all screen sizes
User Experience
- Simple onboarding: 3-step profile setup
- Clear feedback: Loading states and success messages
- Intuitive navigation: Bottom tabs for main features
- Pull-to-refresh: Easy data updates
π Matching Algorithm
The compatibility algorithm uses weighted scoring:
| Factor |
Weight |
Description |
| Course |
30% |
Must match exactly (filtered before scoring) |
| Schedule |
25% |
Overlapping time slots |
| Study Style |
20% |
Active/Passive/Mixed compatibility |
| Grade Goal |
15% |
High achiever vs. Pass-focused |
| Location |
10% |
Preferred study location |
Minimum threshold: 60% compatibility required for group formation
π° Monetization (Future)
Freemium Model
- Free: Match for 1 course
- Paid (Β£5-Β£10/semester):
- Unlimited course matching
- Priority matching
- Advanced filters
University Licensing
- Β£3k-Β£5k per year per university
- Branded campus version
- Custom features
π Security
- Google OAuth: Secure authentication
- University verification: .ac.uk domain required
- Session management: 7-day session tokens
- Protected routes: All endpoints require authentication
- CORS enabled: Secure cross-origin requests
π Data Models
User
- Basic info: email, name, picture
- Academic: university, course
- Preferences: study style, grade goals, location
- Availability: weekly time slots
- Status: onboarding completed, matching status, group ID
Group
- Members: 2-4 user IDs
- Course: shared course/module
- Compatibility: calculated score
- Suggested times: overlapping schedules
- Health score: activity-based (100% default)
Message
- Group ID, sender info
- Content, timestamp
- Simple async delivery
Attendance Session
- Group ID, scheduled date
- Attendees: list of checked-in users
- Status: scheduled/completed/missed
π― Future Enhancements
- Real-time messaging (Socket.io)
- Push notifications (Expo Notifications)
- Advanced analytics (Study patterns, success metrics)
- Calendar integration (Google Calendar sync)
- Study resources sharing (Files, links, notes)
- Video call integration (Quick study sessions)
- Gamification (Badges, leaderboards)
- AI insights (LLM-powered compatibility explanations)
π Known Limitations
- Messaging is async (5-second polling), not real-time
- Single course matching only (free tier)
- Basic streak calculation (consecutive days only)
- No push notifications yet
- No file/image sharing in chat
π License
Built for university students with β€οΈ
π Support
For issues or questions, contact support through the app Profile β Help & Support.
Version: 1.0.0
Last Updated: January 2025
Built with: Expo, FastAPI, MongoDB