I can create a course and upload a course roster for each course
So that certain commons can set to be open only to players that appear on the course roster.
Discussion
Note: this is a a BIG epic. You might not finish all of the parts of it before the course is over, so make sure that if that's true, you leave things in a state where someone else can take over.
You are encouraged to work on all of the backend features first, and add frontend features ONLY for parts of the backend that work completely.
There is a suggested order near the end of this issue.
Currently, admins cannot designate commons to be open to only players on a commons' associated course roster.
In this epic, we implement these changes:
[ ] CRUD operations for courses (admin only)
[ ] CRUD operations for students (admin only)
[ ] CSV upload of student roster (backend and frontend)
[ ] Ability to add a course id to a commons
[ ] Show the course info on every commons that has a course attached to it.
[ ] Restrict joining the commons to only students that appear on the course roster.
HINT: Some of this implementation can be copied from features that are already in Organic, which has database tables for Course, Student, and a CSV uploader that will take course rosters in UCSB eGrades format.
Acceptance Criteria
[ ] Admins can associate a course ID with a commons.
[ ] Admins can upload a CSV of a course roster to a commons.
[ ] When a commons with an associated course ID is selected, information about the course is shown.
[ ] Students can join a commons only if it has no associated course ID or if they appear on the commons' course roster.
Suggested Order
We probably need to things in this order:
All backend CRUD operations for courses
All backend CRUD operations for students (including uploading course roster from CSV)
All frontend crud operations for courses
All frontend CRUD operations for students
All of that before touching ANYTHING with the commons, or logic to join a commons.
Once all of the above is in place:
Add course id to the commons database table (which may be null)
Add ability to specify course id optionally on a commons in backend and frontend
Add logic that enforces that you may not join a commons that has a course id on it unless you appear on the course roster, to backend first (ok if the error message is an ugly toast at this stage)
Add logic where the user does not even SEE a commons that has a course id unless they appear on the course roster.
User Story
Discussion
Note: this is a a BIG epic. You might not finish all of the parts of it before the course is over, so make sure that if that's true, you leave things in a state where someone else can take over.
You are encouraged to work on all of the backend features first, and add frontend features ONLY for parts of the backend that work completely.
There is a suggested order near the end of this issue.
Currently, admins cannot designate commons to be open to only players on a commons' associated course roster.
In this epic, we implement these changes:
HINT: Some of this implementation can be copied from features that are already in Organic, which has database tables for Course, Student, and a CSV uploader that will take course rosters in UCSB eGrades format.
Acceptance Criteria
Suggested Order
We probably need to things in this order:
All of that before touching ANYTHING with the commons, or logic to join a commons.
Once all of the above is in place: