How gudluckman/tutr works
Tutr combines a public tutor marketplace with a tutor’s business-management dashboard. Parents or students discover published profiles and send enquiries; tutors register, manage profiles and students, schedule lessons, track payment status, and review earnings. The frontend calls a Spring API, whose services coordinate domain logic and persistence. Google Calendar synchronization is a separate optional integration, and historical CSV earnings contribute to analytics. The README documents these product capabilities; unsampled controller and service internals are represented only at their documented boundaries.
Main entry points: client.ts API client · DashboardLayout.tsx Tutor dashboard · GoogleCalendarSyncService.java Calendar sync · EnquiryService.java Enquiry service
Components 29
Web experience
- Search and profiles
frontend/src/pages/public/TutorSearchPage.tsx - Login and register
frontend/src/pages/auth/RegisterPage.tsx - Tutor dashboard
frontend/src/pages/dashboard/DashboardLayout.tsx - Enquiry inbox
frontend/src/pages/dashboard/EnquiriesPage.tsx - Student management
frontend/src/pages/dashboard/StudentsPage.tsx - Lesson management
frontend/src/pages/dashboard/LessonsPage.tsx - Earnings analytics
frontend/src/pages/dashboard/EarningsPage.tsx - Profile settings
frontend/src/pages/dashboard/ProfileSettingsPage.tsx - API client
frontend/src/api/client.ts
Marketplace
- Public tutor API
backend/src/main/java/com/tutr/api/controller/PublicTutorController.java - Enquiry API
backend/src/main/java/com/tutr/api/controller/EnquiryController.java - Enquiry service
backend/src/main/java/com/tutr/api/service/EnquiryService.java
Tutor operations
- Student API
backend/src/main/java/com/tutr/api/controller/StudentController.java - Lesson API
backend/src/main/java/com/tutr/api/controller/LessonController.java - Analytics API
backend/src/main/java/com/tutr/api/controller/AnalyticsController.java - Tutor profile API
backend/src/main/java/com/tutr/api/controller/TutorProfileController.java - Student service
backend/src/main/java/com/tutr/api/service/StudentService.java - Lesson service
backend/src/main/java/com/tutr/api/service/LessonService.java - Analytics service
backend/src/main/java/com/tutr/api/service/AnalyticsService.java - Profile service
backend/src/main/java/com/tutr/api/service/TutorProfileService.java
API services
- Authentication API
backend/src/main/java/com/tutr/api/controller/AuthController.java - Auth service
backend/src/main/java/com/tutr/api/service/AuthService.java - PostgreSQL
External integrations
- Calendar API
backend/src/main/java/com/tutr/api/controller/GoogleCalendarController.java - Profile image storage
backend/src/main/java/com/tutr/api/service/ProfileImageStorageService.java - Calendar sync
backend/src/main/java/com/tutr/api/service/GoogleCalendarSyncService.java
Other components
- Parents and students
- Tutors
- Google Calendar
Connections 43
- Parents and students → Search and profiles: searches profiles
- Parents and students → Search and profiles: sends enquiry
- Tutors → Login and register: registers
- Tutors → Tutor dashboard: manages business
- Tutors → Profile settings: edits profile
- Search and profiles → API client: requests tutors
- Login and register → API client: authenticates
- Tutor dashboard → Enquiry inbox: opens inbox
- Tutor dashboard → Student management: manages students
- Tutor dashboard → Lesson management: manages lessons
- Tutor dashboard → Earnings analytics: reviews earnings
- Enquiry inbox → API client: updates enquiries
- Student management → API client: requests students
- Lesson management → API client: requests lessons
- Earnings analytics → API client: requests analytics
- Profile settings → API client: updates profile
- API client → Public tutor API: calls API
- API client → Authentication API: calls API
- API client → Enquiry API: calls API
- API client → Student API: calls API
- API client → Lesson API: calls API
- API client → Analytics API: calls API
- API client → Tutor profile API: calls API
- Public tutor API → PostgreSQL: reads profiles
- Authentication API → Auth service: delegates auth
- Auth service → PostgreSQL: reads and writes users
- Enquiry API → Enquiry service: delegates enquiries
- Enquiry service → Student service: converts enquiry
- Enquiry service → PostgreSQL: persists enquiries
- Student API → Student service: delegates students
- Student service → PostgreSQL: persists students
- Lesson API → Lesson service: delegates lessons
- Lesson service → PostgreSQL: persists lessons
- Analytics API → Analytics service: delegates analytics
- Analytics service → PostgreSQL: reads earnings
- Tutor profile API → Profile service: delegates profile
- Profile service → PostgreSQL: persists profile
- Profile service → Profile image storage: stores image
- Profile image storage → Google Calendar: uploads image
- Lesson service → Calendar sync: syncs lesson
- Calendar API → Calendar sync: manages connection
- Calendar sync → Google Calendar: syncs events
- Calendar sync → PostgreSQL: stores sync state