Student Experience - FaqiangMei/MHA-Survey-Portal GitHub Wiki
- Provide students with a clear view of assigned surveys, advisor feedback, and evidence expectations.
- Enforce onboarding gates (profile completion, accessibility preferences) before dashboards unlock.
- Reduce advisor follow-up by keeping reminders, downloads, and feedback in one place.
- Students authenticate through Google OAuth (
Users::OmniauthCallbacksController). -
ApplicationController#check_student_profile_completeroutes incomplete users to/student_profile/editand/settings. - Once complete,
DashboardsController#studentrenders the student home experience.
| Module | Description | Key Files |
|---|---|---|
| Pending Surveys | Lists open SurveyAssignments with due dates and start/resume actions. |
dashboards/student.html.erb, SurveyAssignments::Presenter
|
| Completed Surveys | Shows submitted surveys, advisor feedback snippets, and PDF download links (signed via SurveyResponse#signed_download_token). |
StudentQuestion, SurveyResponse
|
| Notifications | Mirrors Notification records so reminder jobs surface in-app. |
NotificationsController, SurveyNotificationJob
|
| Evidence Checker | Validates Google Drive permissions before evidence submission. |
EvidenceController#check_access, app/javascript/evidence/*
|
- Advisor assigns (or auto-assigner triggers) a survey →
SurveyAssignments::AutoAssigner. - Student completes the survey via
SurveyResponsesController; partial saves supported. - Advisor feedback flows back through
FeedbacksControllerand displays beneath each completed survey card.
-
SettingsControllerstorestext_scale_percent;<html>font-size follows that percentage (layouts/application.html.erb). - High-contrast toggle in
app/javascript/application.jsaddsbody.high-contrast, styled inapp/assets/stylesheets/application.css.
-
SurveyNotificationJobplusSurveyAssignmentNotifierhandle reminders for assigned, due soon, overdue, completion, and update events. - Students can download surveys/evidence via signed URLs without repeating OAuth.
- Tables:
users,student_profiles,survey_assignments,survey_responses,notifications,feedbacks. - Services:
Reports::DataAggregator(completion metrics),CompositeReportGenerator(PDF packets).
- Force an incomplete profile and confirm redirect to
/student_profile/edit. - Assign a survey, submit, and ensure it moves Pending → Completed.
- Toggle text scaling/high-contrast; confirm persistence after sign-out/in.