New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request]: Introduce support for multiple classrooms (GSoC'24 4.2) #5344
Comments
NB: This issue is locked to ensure that it only contains updates for requirements. If you have questions regarding this project, please use its corresponding discussion category: https://github.com/oppia/oppia-android/discussions/categories/gsoc-q-a-4-2-multiple-classrooms-support. |
NB: The main issue comment has been updated to include the technical details directly rather than a link to a Gist (so that we can easily change this if needed). Please note that there are some small changes to the requirements to better align with the PRD for the feature (as some key UX confusions were cleared up that influenced the original technical design). |
Milestone 1⬜ PR 1.1Introduce a new feature flag for the multiple classrooms feature.
⬜ PR 1.2Update the model & domain layer to support the definition of classrooms, and specify a classroom per-topic.
⬜ PR 1.3Introduce
⬜ PR 1.4Introduce a new activity & related fragments/views/tests for a new classroom list page.
Milestone 2⬜ PR 2.1Update 'recently played' topic cards to include classroom information and update tests.
⬜ PR 2.2Implement new recommendations logic & UI support for the classroom selection and add tests.
⬜ PR 2.3Ensure the existing event logs are captured in the new screen and related tests in preparation for removal & implement new event log.
⬜ Task 2.4Test, iterate, and work with the tech lead to finalize and launch the feature.
⬜ PR 2.5Audit home activity/fragment & recommendation tests to ensure the new utilities cover the same behaviors. Remove the old home activity/fragment.
|
Is your feature request related to a problem? Please describe.
The app is currently limited to only showing basic numeracy lessons, and the broader team plans to introduce lessons of other types (such as financial literacy, science, and more).
Describe the solution you'd like
Suggested Milestones
Technical hints / guidance
Top-level components needed for supporting multiple classrooms in the app
ClassroomListActivity.kt
+ presenter & layout: Top-level activity that has a row of available classrooms which is displayed as a carousel to facilitate addition of future classrooms.ClassroomListFragment.kt
+ presenter & layout: Top-level fragment for the available classrooms. The classrooms are displayed in a carousel(custom view as per existing patterns, see the "last played stories" carousel).ClassroomController.kt
: The new controller for providing classroom context and state.TopicListController.kt
: Existing controller that will be updated to no longer surfacegetTopicList
since this is now implemented inClassroomController
. Existing use cases and tests will need to be migrated over toClassroomController
. For the home screen, suggest defaulting to the "math" classroom so that existing functionality is maintained.FeatureFlagConstants.kt
: Where the new feature flag for enabling multiple classrooms will be defined.ProfileChooserFragmentPresenter.kt
: Updated to navigate the user toClassroomListActivity.kt
instead of HomeActivity when the new feature flag is enabled.home
package will actually be completely removed.Some key technical notes
Suggested files to add/change
ClassroomController.kt:
TODO: Others will be added soon.
Describe alternatives you've considered
No response
Additional context
This is the high-level tracking issue corresponding to https://github.com/oppia/oppia/wiki/Google-Summer-of-Code-2024#42-multiple-classrooms-support.
The text was updated successfully, but these errors were encountered: