How najeeb1106/uos_time_assistant- works
UOS Timetable is a scheduling and room-occupancy product: users authenticate, view or upload timetables, and use schedule data to find available rooms. The repository contains an Express/Firebase backend plus web and React Native clients. The README documents PDF parsing, weekly schedules, live room finding, mock/live modes, and Firebase authentication; sampled source confirms selected API, storage, routing, and parsing relationships. Some mobile and web feature implementations were not sampled, so their internal links are limited to documented capabilities.
Main entry points: App.jsx Web application · scheduleController.js Schedule handlers · useMobileStore.ts Mobile auth state · useStore.js Web state and API
Components 30
Backend services
- Express application
backend/src/app.js - Authentication routes
backend/src/routes/auth.js - Schedule routes
backend/src/routes/schedule.js - Authentication handlers
backend/src/controllers/authController.js - Schedule handlers
backend/src/controllers/scheduleController.js - PDF timetable parser
backend/src/utils/pdfParser.js - Image timetable parser
backend/src/services/imageParserService.js
Web client
- Web application
web/src/App.jsx - Web state and API
web/src/store/useStore.js - Web authentication
web/src/pages/Login.jsx - Weekly schedule
web/src/pages/WeeklySchedule.jsx - Room finder
web/src/pages/FreeRooms.jsx - Timetable upload
web/src/pages/Upload.jsx - User profile
web/src/pages/Profile.jsx - Browser PDF parser
web/src/utils/pdfParser.js
Mobile client
- Mobile application
mobile-rn/App.tsx - Mobile navigation
mobile-rn/src/navigation/RootNavigator.tsx - Mobile sign-in
mobile-rn/src/screens/auth/RegisterScreen.tsx - Mobile auth state
mobile-rn/src/stores/useMobileStore.ts - Mobile API client
mobile-rn/src/api/client.ts - Mobile timetable upload
mobile-rn/src/screens/main/UploadScreen.tsx - Mobile schedule state
mobile-rn/src/stores/useScheduleStore.ts - Mobile schedule view
mobile-rn/src/screens/main/ScheduleScreen.tsx - Mobile dashboard
mobile-rn/src/screens/main/DashboardScreen.tsx - Mobile room finder
mobile-rn/src/screens/main/FreeRoomsScreen.tsx - Mobile profile
mobile-rn/src/screens/settings/ProfileScreen.tsx - Mobile app storage
mobile-rn/src/utils/appStorage.ts
Shared platform
- Firebase configuration
backend/src/config/firebase.js - Firestore and Auth
Other components
- Student or faculty
Connections 37
- Student or faculty → Web application: uses
README.md - Web application → Weekly schedule: routes to
web/src/App.jsx - Web application → Room finder: routes to
web/src/App.jsx - Web application → Timetable upload: routes to
web/src/App.jsx - Web application → User profile: routes to
web/src/App.jsx - Web application → Web authentication: routes to
web/src/App.jsx - Web application → Web state and API: loads state
web/src/App.jsx - Room finder → Web state and API: uses state
web/src/pages/FreeRooms.jsx - User profile → Web state and API: uses state
web/src/pages/Profile.jsx - Timetable upload → Web state and API: submits upload
web/src/store/useStore.js - Timetable upload → Browser PDF parser: uses parser
web/src/pages/Upload.jsx - Web state and API → Express application: calls API
web/src/store/useStore.js - Student or faculty → Mobile application: uses
README.md - Mobile application → Mobile navigation: starts navigation
mobile-rn/App.tsx - Mobile navigation → Mobile sign-in: presents auth
- Mobile sign-in → Mobile auth state: uses auth state
mobile-rn/src/screens/auth/RegisterScreen.tsx - Mobile auth state → Mobile API client: calls APIs
mobile-rn/src/stores/useMobileStore.ts - Mobile auth state → Mobile app storage: persists profile
mobile-rn/src/stores/useMobileStore.ts - Mobile timetable upload → Mobile API client: uses API
- Mobile schedule state → Mobile API client: fetches schedule
mobile-rn/src/stores/useScheduleStore.ts - Mobile schedule state → Mobile auth state: syncs user profile
mobile-rn/src/stores/useScheduleStore.ts - Mobile schedule view → Mobile schedule state: displays schedule
- Mobile dashboard → Mobile schedule state: shows schedule
- Mobile room finder → Mobile API client: uses API
- Mobile profile → Mobile auth state: updates profile
- Express application → Authentication routes: mounts routes
backend/src/app.js - Express application → Schedule routes: mounts routes
backend/src/app.js - Authentication routes → Authentication handlers: dispatches to
backend/src/routes/auth.js - Schedule routes → Schedule handlers: dispatches to
backend/src/routes/schedule.js - Authentication handlers → Firebase configuration: uses services
backend/src/controllers/authController.js - Schedule handlers → Firebase configuration: uses services
backend/src/controllers/scheduleController.js - Schedule handlers → PDF timetable parser: parses PDFs
backend/src/controllers/scheduleController.js - Schedule handlers → Image timetable parser: parses images
backend/src/controllers/scheduleController.js - Firebase configuration → Firestore and Auth: configures
README.md - Schedule handlers → Firestore and Auth: stores schedules
backend/src/controllers/scheduleController.js - Authentication handlers → Firestore and Auth: reads user data
backend/src/controllers/authController.js - Student or faculty → Express application: uploads timetable