Add a database table for "Project" to the application.
The Project table should have these fields:
- id (Long,Autoincrement, Primary Key)
- name (string)
- description (string)
- date created
- owner (email address of the creator)
Add a Collaborators database table similar to the Staff table found in https://github.com/ucsb-cs156/proj-scaffold
Similar to the way https://github.com/ucsb-cs156/proj-scaffold works, users should see a list of Projects on their home page to which they have Owner access and to which they have Collaborator access.
To support this, add a ProjectTable React component that uses the OurTable pattern that shows the fields given, plus has Edit and Delete buttons. Consult https://github.com/ucsb-cs156/proj-scaffold for the user interface patterns for creating Courses for examples of what this should look like.
Base it on the CourseTable table in proj-scaffold, including having a column for Project Name with the icon showing a small graph, and also having a column for settings that links to a settings page for that Project (just like the table in proj-scaffold has a column for Course Name, and a column for Settings.)
Also, create a ResearcherProjectShowPage, but analogy with the InstructorCourseShowPage that you find in
https://github.com/ucsb-cs156/proj-scaffold that allows adding Staff---but instead of Staff, call them "Collaborators". This should be structured with tabs, just like the current InstructorCourseShowPage. The only tab for the moment will be the Collaborators tab, but others will come later.
If you have questions, or there are ambiguities, ask for clarification.
When done, make a pull request, and monitor for failing CI/CD checks. Add tests, or fix formatting as needed to get all CI/CD checks to pass.
Add a database table for "Project" to the application.
The Project table should have these fields:
Add a Collaborators database table similar to the Staff table found in https://github.com/ucsb-cs156/proj-scaffold
Similar to the way https://github.com/ucsb-cs156/proj-scaffold works, users should see a list of Projects on their home page to which they have Owner access and to which they have Collaborator access.
To support this, add a ProjectTable React component that uses the OurTable pattern that shows the fields given, plus has Edit and Delete buttons. Consult https://github.com/ucsb-cs156/proj-scaffold for the user interface patterns for creating Courses for examples of what this should look like.
Base it on the CourseTable table in proj-scaffold, including having a column for Project Name with the icon showing a small graph, and also having a column for settings that links to a settings page for that Project (just like the table in proj-scaffold has a column for Course Name, and a column for Settings.)
Also, create a ResearcherProjectShowPage, but analogy with the InstructorCourseShowPage that you find in
https://github.com/ucsb-cs156/proj-scaffold that allows adding Staff---but instead of Staff, call them "Collaborators". This should be structured with tabs, just like the current InstructorCourseShowPage. The only tab for the moment will be the Collaborators tab, but others will come later.
If you have questions, or there are ambiguities, ask for clarification.
When done, make a pull request, and monitor for failing CI/CD checks. Add tests, or fix formatting as needed to get all CI/CD checks to pass.