How yasunosubaru/ham-ios works
Ham is a standalone React Native campus app. Students enter through the app screens; education flows fetch and parse course schedules and scores, while grade entry reads replies from education pages without submitting grades. Separate capabilities cover GPA calculation, CAS authentication, library booking, campus weather, and OTA updates. The README documents these capabilities, but sampled source only verifies selected flows, so uncertain internal wiring is omitted.
Main entry points: HamApp.tsx Ham app · GradeEntryScreen.tsx Grade entry · course/index.ts Course retrieval · score/index.ts Score retrieval
Components 25
App experience
- Ham app
src/app/HamApp.tsx - Course schedule
src/app/CourseScreen.tsx - Score query
src/app/ScoreScreen.tsx - Grade entry
src/app/GradeEntryScreen.tsx - GPA calculator
src/app/GpaCalculatorScreen.tsx - Library
src/app/LibraryScreen.tsx - Campus weather
src/app/WeatherScreen.tsx - CAS login UI
src/components/cas/CasMobileLoginView.tsx
Education services
- Education page view
src/components/education/EducationPageView.tsx - Course retrieval
src/business/education/course/index.ts - Course API
src/business/education/course/api.ts - Course parser
src/business/education/course/parser.ts - Score retrieval
src/business/education/score/index.ts - Score API
src/business/education/score/api.ts - Score parser
src/business/education/score/parser.ts - Score calculator
src/business/education/scorecalc/fetch.ts - CAS authentication
src/business/cas/index.ts
Campus services
- Library booking
src/business/library/index.ts - Weather retrieval
src/business/weather/index.ts - Forecast parser
src/business/weather/parser.ts
Native platform
- Education native bridge
src/modules/NativeEducationModule.ts - OTA updates
hot-updater.config.ts
Other components
- Student
- University services
- Forecast API
Connections 28
- Student → Ham app: uses
- Ham app → Course schedule: opens
- Ham app → Score query: opens
- Ham app → Grade entry: opens
- Ham app → GPA calculator: opens
- Ham app → Library: opens
- Ham app → Campus weather: opens
- Course schedule → Course retrieval: requests courses
- Course retrieval → Course API: fetches
- Course retrieval → Course parser: parses reply
- Course API → University services: requests schedule
- Score query → Score retrieval: requests scores
- Score retrieval → Score API: fetches
- Score retrieval → Score parser: parses reply
- Score API → University services: requests scores
- Grade entry → CAS login UI: reauthenticates
- Grade entry → Education page view: reads page replies
- Education page view → University services: loads education page
- Grade entry → Education native bridge: checks CAS session
- GPA calculator → Score calculator: calculates
- Library → Library booking: books resources
- Library booking → University services: calls service
- Campus weather → Weather retrieval: requests forecast
- Weather retrieval → Forecast API: fetches forecast
- Weather retrieval → Forecast parser: parses response
- CAS login UI → CAS authentication: starts login
- CAS authentication → University services: authenticates
- Ham app → OTA updates: receives updates