[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
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]: Support multiple classrooms from the learner side. #19849

Open
9 of 10 tasks
seanlip opened this issue Feb 29, 2024 · 0 comments
Open
9 of 10 tasks

[Feature Request]: Support multiple classrooms from the learner side. #19849

seanlip opened this issue Feb 29, 2024 · 0 comments
Labels
enhancement Label to indicate an issue is a feature/improvement Impact: High Blocks or significantly slows down a core workflow. target: Q4 2024 Plan to complete by 24 Dec 2024. Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet.

Comments

@seanlip
Copy link
Member
seanlip commented Feb 29, 2024

Is your feature request related to a problem? Please describe.

Oppia currently has a classroom page for Math lessons, which is featured prominently and accessible via the home page, navigation bar, community library and learner dashboard. We would like to launch lessons in other subjects as well, but we cannot publish those lessons because there is nowhere to do so.

Describe the solution (or solutions) you'd like

The aim of this project is to implement the infrastructure to display multiple classrooms (besides the current math one), and make it easy for learners to navigate to them. In particular, creators should be able to create new classrooms and edit them at the relevant URLs, and learners should be able to view topics and lessons within these classrooms.

Here is a list of specific deliverables to include:

  • In the topics and skills dashboard, topics can be filtered by classroom, and the default sorting order for topics should be by when they were last updated.
  • The topic editor page should show which classroom a topic is in.
  • Whether a classroom is visible/hidden should be configurable on the classroom admin dashboard. Hidden classrooms should be viewable by curriculum admins and super admins, with a banner displayed across the top to point out that it is hidden. They should result in a 404 for all other users.
  • Implement a new "classroom index" page at www.oppia.org/learn, with e2e tests. The page is gated behind a feature flag. If there is only 1 visible classroom, this page should redirect to /learn/{{classroom-name}}. If there are more visible classrooms, it should show a list of classrooms. If there are no visible classrooms, it should show a standard error message in prod mode, and tell the user that they can create a new classroom at /classroom-admin in dev mode.
  • Implement a generalized per-subject classroom page and update the math classroom to use it, including the routing. The functionality for classrooms should be fully generalized so that there is no direct reference to “/math” in the codebase.
  • Update the splash page and navigation bar to point to the new classroom index page if there is more than one classroom. (The existing behaviour of the site should be preserved if there is only one classroom.) Add e2e tests for this.
  • Update the community library and learner dashboard to point to the new classroom pages, and add e2e tests for this.
  • In the topic viewer page, show which classroom the topic is in.
  • Implement the necessary analytics events for classroom usage (see the "Automatically-collected metrics" section of the PRD).
  • Work with the Web tech lead to add new CUJs and launch the new classrooms page functionality. Remove the feature flag once the launch is successful.

All UI updates should work fully on mobile devices and be responsive, accessible and fully internationalized.

The implementation should include unit and acceptance tests to confirm both 1-classroom and multiple classrooms behaviour. Cases to cover include: (a) a single /math classroom, (b) a single non-/math classroom, (c) 2+ classrooms.

Describe alternatives you've considered and rejected

No response

Additional context

Here are the PRD and mocks for the project, which you can use as a reference.

This project requires a design document, which should cover (at least) the following:

  • How to generalize the routing to multiple classrooms (ideally, this is handled in the frontend)
  • How to efficiently determine which classroom (if any) a topic is in
  • What backend changes are needed in order to remove any hardcoding of "/math" and generalize it
  • Any corner cases that need to be tackled

Notes:

  • New classrooms are created by curriculum admins using the dashboard at /classroom-admin. You will need curriculum admin permissions, which you can grant at /admin (see the Roles tab).
  • From a product perspective, it's fine to require that a topic cannot be linked to more than one classroom. However, if the technical design depends upon this being true, then please take steps to prevent this from happening (e.g. erroring and refusing to save if the user makes a change that would cause such a state to arise).
  • This issue includes changes to the learner dashboard, and the mocks above are based on the redesigned learner dashboard (see [Feature Request]: Learner Dashboard Redesign #18384). However, if the dashboard isn't ready in time, it's fine to implement the new functionality on the existing learner dashboard instead.

Meeting notes: https://docs.google.com/document/d/1snAtIUn3s7kdMLg8UGp-7pd_69CZEN-OuO2aGaJAK_8/edit?usp=sharing

Journals: https://medium.com/@afzl210

Milestones

Sub-milestone plan doc.

Milestone - 1

Task PR Creation Date PR Merge Date Notes PR
Milestone 1.1 28-05-2024 30-05-2024 Add feature flag #20359
Milestone 1.2 06-06-2024 16-06-2024 PR-1, PR-2, PR-3
Sub-milestone 1.2 Task 1 05-06-2024 11-06-2024 Update classroom storage model and functions #20389
Sub-milestone 1.2 Task 2 11-06-2024 13-06-2024 write backend handlers #20455
Sub-milestone 1.2 Task 3 13-06-2024 16-06-2024 Write Frontend code -- And also remove hard-coded values for classroom #20418 #20477
Milestone 1.3 14-06-2024 16-06-2024 Prereq M 1.2 #20584
Milestone 1.4 05-06-2024 12-06-2024 #20387
Milestone 1.5 20-06-2024 23-06-2024 #20514
Milestone 1.6 21-06-2024 23-06-2024 #20418
Milestone 1.7 20-06-2024 23-06-2024 #20539

Milestone - 2

Task PR Creation Date PR Merge Date Notes PR
Milestone 2.1 14-07-2024 19-07-2024 #20670
Milestone 2.2 17-07-2024 19-07-2024 #20663
Milestone 2.3 22-07-2024 24-07-2024 #20738
Milestone 2.4 22-07-2024 24-07-2024 All features are already present. No changes required.
Milestone 2.5 28-07-2024 31-07-2024 #20857 #20777
Milestone 2.6 04-08-2024 07-08-2024 #20664
Milestone 2.7 09-08-2024 11-08-2024 Prereq M2.1, M2.2, M2.3 #20814
@seanlip seanlip added triage needed enhancement Label to indicate an issue is a feature/improvement reserved for GSoC labels Feb 29, 2024
@oppia oppia locked and limited conversation to collaborators Feb 29, 2024
@seanlip seanlip added Impact: High Blocks or significantly slows down a core workflow. Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet. labels Mar 4, 2024
@oppia oppia unlocked this conversation May 6, 2024
AFZL210 added a commit to AFZL210/oppia that referenced this issue May 25, 2024
@AFZL210 AFZL210 moved this from Todo to In Progress in LaCE Quality Team May 26, 2024
github-merge-queue bot pushed a commit that referenced this issue May 28, 2024
* Fix part of ##19849: Add feature flag for multiple classrooms feature

* update feature flag description
AFZL210 added a commit to AFZL210/oppia that referenced this issue Jun 1, 2024
github-merge-queue bot pushed a commit that referenced this issue Jun 12, 2024
…n and unpublish operations (#20387)

* Fix part of #19849: Display classroom name in topic editor

* fix deleteTopic

* fix classroom type

* update sorting order to most recently updated

* updated curriculum admin contact text

* add test for getClassroomName()

* fix backend test

* refactor code

* fix acceptance test for deleting a topic

* fix acceptance test for deleting a topic

* fix test

* fix test

* update variable name
AFZL210 added a commit to AFZL210/oppia that referenced this issue Jun 12, 2024
AFZL210 added a commit to AFZL210/oppia that referenced this issue Jun 12, 2024
github-merge-queue bot pushed a commit that referenced this issue Jun 14, 2024
* Fix part of #19849: Add classroom related backend handlers

* update logic

* Add test for new classroom handler

* remove update_or_create_classroom function

* remove handler suffix

* remove open_acess
AFZL210 added a commit to AFZL210/oppia that referenced this issue Jun 16, 2024
AFZL210 added a commit to AFZL210/oppia that referenced this issue Jun 19, 2024
AFZL210 added a commit to AFZL210/oppia that referenced this issue Jun 21, 2024
AFZL210 added a commit to AFZL210/oppia that referenced this issue Jul 10, 2024
AFZL210 added a commit to AFZL210/oppia that referenced this issue Jul 12, 2024
github-merge-queue bot pushed a commit that referenced this issue Jul 18, 2024
…om (#20663)

* Fix part of #19849: Update topic viewer breadcrumbs

* fix staging topic

* fix test

* update i18n key

* add test for classroom

* remove redundant i18 test bed
github-merge-queue bot pushed a commit that referenced this issue Jul 21, 2024
* Fix part of #19849: Update diagnostic player page

* fix type

* handle errors

* minor change

* show only warning
github-merge-queue bot pushed a commit that referenced this issue Jul 22, 2024
* Fix part of #19849: Add classrooms carousel in community libaray page

* fix linter

* fix style

* minor changes

* refactor code

* fix style

* fix navigation indicators

* add i18n key

* minor changes

* minor changes

* fix typo

* fix test

* fix a11y

* fix linter

* fix a11y

* use i18n service

* add classroom images
github-merge-queue bot pushed a commit that referenced this issue Jul 22, 2024
* Fix part of #19849: Add classrooms carousel in community libaray page

* fix linter

* fix style

* minor changes

* refactor code

* fix style

* fix navigation indicators

* add i18n key

* minor changes

* minor changes

* fix typo

* fix test

* fix a11y

* fix linter

* fix a11y

* use i18n service

* add classroom images
github-merge-queue bot pushed a commit that referenced this issue Jul 22, 2024
* Fix part of #19849: Add classrooms carousel in community libaray page

* fix linter

* fix style

* minor changes

* refactor code

* fix style

* fix navigation indicators

* add i18n key

* minor changes

* minor changes

* fix typo

* fix test

* fix a11y

* fix linter

* fix a11y

* use i18n service

* add classroom images
AFZL210 added a commit to AFZL210/oppia that referenced this issue Aug 19, 2024
github-merge-queue bot pushed a commit that referenced this issue Aug 22, 2024
* Fix part of #19849: Add feature to update classrooms order

* add test

* fix linter

* fix linter

* fix linter

* fix linter

* fix linter

* fix backend test

* fix frontend test

* update comment

* simplify domain object

* fix type

* change name

* change handler name

* fix linter

* scale tile when dragging

* fix linter

* minor change

* fix backend test

* fix test

* fix test

* fix test
AFZL210 added a commit to AFZL210/oppia that referenced this issue Aug 23, 2024
github-merge-queue bot pushed a commit that referenced this issue Aug 24, 2024
* Fix part of #19849: Fix carousel and text overflow

* fix test

* fix test

* minor changes

* fix test

* add comment
AFZL210 added a commit to AFZL210/oppia that referenced this issue Aug 26, 2024
github-merge-queue bot pushed a commit that referenced this issue Aug 26, 2024
* Remove hardcoded math banner

* fix e2e test

---------

Co-authored-by: Akhilesh Kr. <2827daya@gmail.com>
github-merge-queue bot pushed a commit that referenced this issue Sep 25, 2024
* Fix part of #19849: Show hint to create classroom in navbar

* add condition to show hint

* update text

* update text

* fix linter

---------

Co-authored-by: Hardik Goyal <135348086+HardikGoyal2003@users.noreply.github.com>
Co-authored-by: Akhilesh Kr. <2827daya@gmail.com>
seanlip pushed a commit that referenced this issue Sep 25, 2024
* Fix part of #19849: Show hint to create classroom in navbar

* add condition to show hint

* update text

* update text

* fix linter

---------

Co-authored-by: Hardik Goyal <135348086+HardikGoyal2003@users.noreply.github.com>
Co-authored-by: Akhilesh Kr. <2827daya@gmail.com>
@seanlip seanlip added the target: Q4 2024 Plan to complete by 24 Dec 2024. label Oct 29, 2024
@AFZL210 AFZL210 removed their assignment Dec 2, 2024
@HardikGoyal2003 HardikGoyal2003 moved this from In Progress to Todo in LaCE Quality Team Dec 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Label to indicate an issue is a feature/improvement Impact: High Blocks or significantly slows down a core workflow. target: Q4 2024 Plan to complete by 24 Dec 2024. Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet.
Projects
Status: Todo
Development

No branches or pull requests

3 participants