How shinseying/seonbae works
Seonbae is a Next.js/Supabase tutoring platform. The principal workflow is: a learner or tutor authenticates, learners request tutor matching and use the portal for bookings, classrooms, homework, consultations, billing, chat, and reports; tutors manage profiles and classes; administrators review applications, provision tutor accounts, and schedule sessions. Supabase persists identities and domain state, while storage holds submitted documents and homework. Sampled files show strongest evidence for onboarding, booking, classroom access, homework, tutor contracts, and administrative review; some portal branches are represented from the repository tree only.
Components 25
Access Onboarding
- Login Signup
app/login/page.tsx - Signup API
app/api/auth/signup/route.ts - Tutor Application
app/tutor-apply/page.tsx - Contract Signing
app/api/tutor-contract/route.ts
Learning Portal
- Portal Dashboard
app/portal/PortalDashboard.tsx - Booking Requests
app/api/bookings/route.ts - Classroom Access
app/api/classroom/route.ts - Homework Portal
app/portal/homework/HomeworkList.tsx - Homework Workflow
app/api/homework/route.ts - Consultations
app/api/consultations/route.ts - Billing Access
app/portal/billing/BillingClient.tsx - Portal Chat
app/api/chat/route.ts
Operations Admin
- Application Review
app/admin/applications/ApplicationReviewClient.tsx - Review API
app/api/admin/applications/route.ts - Tutor Provisioning
app/api/admin/tutor-accounts/route.ts - Session Manager
app/admin/sessions/AdminSessionManager.tsx - Session Scheduling
app/api/admin/sessions/route.ts
Platform Services
- Supabase Auth
utils/supabase/server.ts - Supabase Data
utils/supabase/admin.ts - Supabase Storage
utils/auth/tutor-upload-storage.ts - Email Delivery
utils/email/booking.ts - Zoom Meetings
utils/zoom/server.ts
Other components
- Learner / Parent
- Tutor
- Administrator
Connections 34
- Learner / Parent → Login Signup: signs in
- Tutor → Tutor Application: submits application
- Login Signup → Signup API: submits signup
- Signup API → Supabase Auth: creates identity
- Signup API → Supabase Data: stores application
- Signup API → Supabase Storage: validates documents
- Tutor → Contract Signing: signs contract
- Contract Signing → Supabase Data: records signature
- Contract Signing → Supabase Storage: stores signature
- Administrator → Application Review: reviews applications
- Application Review → Review API: submits decision
- Review API → Supabase Data: updates review
- Administrator → Tutor Provisioning: provisions tutor
- Tutor Provisioning → Supabase Auth: creates account
- Tutor Provisioning → Supabase Data: links tutor profile
- Tutor Provisioning → Email Delivery: sends setup email
- Learner / Parent → Portal Dashboard: uses portal
- Portal Dashboard → Booking Requests: requests matching
- Booking Requests → Supabase Data: stores booking
- Booking Requests → Email Delivery: sends notification
- Tutor → Classroom Access: manages access
- Learner / Parent → Classroom Access: requests access
- Classroom Access → Supabase Data: updates membership
- Homework Portal → Homework Workflow: submits work
- Homework Workflow → Supabase Data: updates assignment
- Homework Workflow → Supabase Storage: stores attachments
- Learner / Parent → Consultations: requests consultation
- Learner / Parent → Billing Access: requests billing access
- Learner / Parent → Portal Chat: sends messages
- Administrator → Session Manager: creates session
- Session Manager → Session Scheduling: saves schedule
- Session Scheduling → Supabase Data: stores session
- Session Scheduling → Zoom Meetings: creates meeting
- Tutor → Zoom Meetings: joins lesson