How saulalee/katedra-client works
Katedra is a teacher-facing AI academic-content generator. A teacher signs in, selects a subject and syllabus, requests theory, assessments, or slides, then views and exports generated material; plan permissions and usage constrain generation and exports. The client also supports syllabus ingestion, content history, subscription checkout, and administrator user management. The README documents a hook–store/service–REST architecture; sampled source confirms generation, auth, billing, and user-service behavior, but not every page-to-hook connection, so uncertain wiring is omitted.
Main entry points: App.jsx Route application · useGenerator.js Generation workflow · useAuth.js Auth hook · suscripcionStore.js Subscription state
Components 25
App and routes
- Route application
src/App.jsx - Role protection
src/app/components/ProtectedRoute.jsx
Identity and access
- Sign in and register
src/app/pages/Login.jsx - OAuth callback
src/app/pages/AuthCallback.jsx - Auth hook
src/app/hooks/useAuth.js - Auth state
src/app/store/authStore.js - Auth requests
src/app/services/authService.js
Academic content
- Teacher dashboard
src/app/pages/Dashboard.jsx - Content generator
src/app/pages/Generator.jsx - Generation workflow
src/app/hooks/useGenerator.js - Syllabus and materials
src/app/services/temarioService.js - Content viewing and history
src/app/pages/GeneratedContents.jsx - Content export
src/app/hooks/useExport.js - Subject data
src/app/hooks/useAsignaturas.js - Syllabus data
src/app/hooks/useTemarios.js
Plans and billing
- Plan and checkout UI
src/app/components/CheckoutModal.jsx - Subscription hook
src/app/hooks/useSuscripcion.js - Subscription state
src/app/store/suscripcionStore.js - Subscription requests
src/app/services/suscripcionService.js
Administration
- User administration
src/app/pages/Users.jsx - User data
src/app/hooks/useUsers.js - User requests
src/app/services/userService.js
Other components
- Teacher
- Administrator
- Katedra REST API
Connections 28
- Teacher → Route application: opens app
- Administrator → Route application: opens app
- Route application → Sign in and register: routes
- Route application → OAuth callback: routes
- Route application → Role protection: guards routes
- Route application → Teacher dashboard: routes
- Route application → Content generator: routes
- Route application → Content viewing and history: routes
- Route application → User administration: routes
- Sign in and register → Auth hook: uses auth
- OAuth callback → Auth hook: handles callback
- Auth hook → Auth state: delegates state
- Auth state → Auth requests: requests auth
- Auth requests → Katedra REST API: sends REST requests
- Content generator → Generation workflow: uses workflow
- Generation workflow → Syllabus data: loads syllabi
- Generation workflow → Subject data: loads subjects
- Generation workflow → Syllabus and materials: generates and reads
- Syllabus and materials → Katedra REST API: sends REST requests
- Content viewing and history → Content export: exports content
- Generation workflow → Subscription state: refreshes usage
- Plan and checkout UI → Subscription hook: uses plan state
- Subscription hook → Subscription state: derives permissions
- Subscription state → Subscription requests: requests billing
- Subscription requests → Katedra REST API: sends REST requests
- User administration → User data: manages users
- User data → User requests: requests user data
- User requests → Katedra REST API: sends REST requests