Skip to content

Feature List and Timeline

Rayner edited this page Jul 8, 2022 · 13 revisions

Feature Summary

For the features, we decided to organize them by pages (like a sitemap) so that is easier to understand the flow of the system by how the website will be structured

ID Feature Priority Status
1 Manage Cohorts Page P0 Completed
2 Manage Users Page P0 Completed
3 Manage Deadlines Page P0 Completed
4 Manage Deadline Details Page P0 Completed
5 Sign In Page P0 Completed
6 Reset Password Page P1 Completed
7 Change Password Page P1 Completed
8 Manage Projects List Page P1 Completed
9 Project Details Page P0 Completed
10 Project Gallery Page P1 Blocked (Requires submissions)
11 Staff Page P2 Completed
12 Student Dashboard P0 Next milestone
13 Adviser Dashboard P0 Next milestone
14 Mentor Dashboard P0 Next milestone
15 Administrator Dashboard P0 Next milestone
16 Applications Page P3 Next milestone
17 Forum Page P2 Next milestone
18 Profile Page P2 Completed

Feature List with User Stories

Student Dashboard [P0] - Next Milestone

    • As a student, I can view all my upcoming deadlines and their due dates
    • As a student, I can view the questions of a deadline
    • As a student, I can submit my answers to deadlines
    • As a student, I can edit my submitted answers (should we block edits after deadline?)
    • As a student, I can view the evaluations that I have received
    • As a student, I can view submissions from other teams in my evaluation group

Adviser Dashboard [P0] - Next Milestone

    • As an adviser, I can view all the projects that I am responsible for and their submissions
    • As an adviser, I can evaluate submissions of the projects I am responsible for
    • As an adviser, I can submit my answers to evaluation or deadline forms'
    • As an adviser, I can edit my answers submitted answers before the due date
    • As an adviser, I can view the milestone submissions of all the teams that I am responsible for
    • As an administrator, I can view all evaluation responses identify which teams have yet to submit
    • As an adviser, I can view the peer evaluations submitted by the teams I am responsible for
    • As an adviser, I can create evaluation groups for projects that I am responsible for
    • As an adviser, I can edit the evaluation groups that I had created
    • As an adviser, I can delete the evaluation groups that I had created
    • As an adviser, I can view all the projects that I am responsible for

Mentor Dashboard [P0] - Next Milestone

    • As a mentor, I can view the milestone submissions of all the teams that I am responsible for
    • As a mentor, I can view prospective projects and decide whether or not to mentor them
    • As an mentor, I can view all the projects that I am responsible for

Administrator Dashboard [P0] - Next Milestone

    • As an administrator, I can view all submissions for all deadlines

Manage Projects List Page [P1] - √ Completed

    • As an administrator, I can view the level of achievement, students, advisers and mentors of all projects
    • As an administrator, I can delete projects

Project Details Page [P0] - √ Completed

    • As a student, I can view my project's id, name, students, adviser, mentor, proposal pdf and level of achievement
    • As an adviser, I can modify the level of achievement of projects that I am responsible for

Project Gallery Page [P1] - X Blocked

    • As a user, I can view all projects' posters and videos across all levels of achievement and cohorts
    • As a user, I can search and filter projects
    • As a user, I can view a project's details
    • As a user, I can view a project's submissions

Staff Page [P2] - √ Completed

    • As a user, I can view all staff involved in Orbital across all cohorts and get their contact information

Manage Cohorts Page [P0] - √ Completed

    • As an administrator, I can add new cohorts with specific start and end dates
    • As an administrator, I can view all cohorts as well as their respective start and end dates
    • As an administrator, I can edit the start and end date of cohorts
    • As an administrator, I can delete cohorts that do not have any students

Manage Users Page [P0] - √ Completed

    • As an administrator, I can view roles of all accounts
    • As an administrator, I can create new accounts with a specific role
    • As an administrator, I can batch create new accounts with student role
    • As an administrator, I can batch create new accounts with mentor role
    • As an administrator, I can batch attach the adviser role to existing users with student role
    • As an administrator, I can add roles to existing accounts
    • As an administrator, I can delete roles from existing accounts
    • As an administrator, I can edit the role information of existing accounts
    • As an administrator, I can select an account to preview the website as

Manage Deadlines Page [P0] - √ Completed

    • As an administrator, I can add new deadlines with due dates
    • As an administrator, I can view all deadlines by cohort
    • As an administrator, I can edit the due date of deadlines
    • As an administrator, I can delete deadlines

Manage Deadline Details Page [P0] - √ Completed

    • As an administrator, I can view a deadline's questions
    • As an administrator, I can add/edit/delete questions from a deadline
    • As an administrator, I can choose which questions should be anonymous

Profile Page [P2] - √ Completed

    • As a user, I can view any user's profile details
    • As a user, I can edit my own user profile details

Sign In Page [P0] - √ Completed

    • As a user, I can sign into the platform

Reset Password Page [P1] - √ Completed

    • As a user, I can reset my password which emails me the new generated password

Applications Page [P3] - Next Milestone (User stories KIV)

    • As an aspiring orbitee, I can submit my proposal directly via Skylab
    • As an administrator, I can view all submitted proposals
    • As an administrator, I can accept or reject proposals

Forum Page [P2] - Next Milestone (User Stories KIV)

    • As an administrator, I can delete posts which violate rules or protocols
    • As a user, I can create posts on the forum
    • As a user, I can edit my posts on the forum
    • As a user, I can delete my posts on the forum
    • As a user, I can comment on forum posts
    • As a user, I can edit my comments in forum posts
    • As a user, I can delete my comments in forum posts
    • As a user, I can directly access the profiles of the author or commentors of the post I am currently viewing
    • As a user, I can search and filter posts

Misc - Next Milestone

    • The system can automatically download and re-upload submissions on a local server (images)/YouTube (videos) so that there are local copies of project submissions (for Liftoff and Splashdown)
    • As an administrator I can clone deadlines and their questions for a new cohort so I do not have to recreate all the questions

Timeline

Sprint 1 (9 May - 22 May)

1. Initialize Codebase βœ…

  • Create Next App
  • Set up Material UI and global css file
  • Create Express App
  • Set up project folder structure
  • Set up config files
    • Next
    • Typescript
    • Eslint
    • Prettier

2. Authentication βœ…

  • Create Firebase app
  • Create user data schemas and tables in Prisma
    • Users
    • Students
    • Mentors
    • Advisers
    • Facilitators
  • Set up users endpoints to allow user creation in Prisma
  • Set up auth context on client side
    • User data state
    • User data loading state
    • Sign in function
    • Sign out function
    • Reset Password function

3. Reausable UI Components βœ…

  • Responsive navbar
  • Footer
  • Button
  • Typography
  • Form controls
    • Select
    • Radio
    • Input

Sprint 2 (23 May - 8 June)

4. Landing Page βœ…

  • About Orbital section
  • Create projects schema and table in Prisma
  • Seed past project data into Prisma
  • Set up projects endpoints on server side to provide projects data
  • Connect to projects endpoints on client side to receive projects data

5. Staff Page βœ…

  • Set up staff endpoints on server side to provide staff data
  • Grid display for all staff
  • Tabs to filter staff by role
  • Cohort selector
  • Search input for search by string matching
  • Connect to staff endpoints on client side to receive staff data

6. Projects Page βœ…

  • Create projects schema and table in prisma
  • Seed past projects data into Prisma
  • Set up projects endpoints on server side to provide projects data
  • Grid display for all projects
  • Tabs to filter projects by level of achievement
  • Cohort selector
  • Search input for search by string matching
  • Connect to projects endpoints on client side to receive projects data

7. Profile Page βœ…

  • Set up user endpoints on server side to provide data of a specific user
  • Set up user endpoints on server side to allow updates to the data of a specific user
  • Display user info
    • Name
    • Profile picture
    • Team
    • Contact info
  • Allow users to edit their own profiles
  • Connect to user endpoints on client side to receive data of a specific user
  • Connect to user endpoints on client side to send updated data of a specific user

Sprint 3 (9 June - 22 June)

8. Users Page βœ…

  • Set up user endpoints on server side to provide data of all users
  • Set up administrator endpoints to allow updates to the role of a specific user
  • Set up administrator endpoints to allow updates to the role of a batch of users
  • List display of all users
  • Allow administrators to edit user roles individually
  • Allow administrators to edit user roles in batches
  • Allow administrators to create a new user with a specific role
  • Allow administrators to preview the website from the perspective of any specific user
  • Connect to user endpoints on client side to receive data of all users
  • Connect to user endpoints on client side to send updated role of a specific user
  • Connect to user endpoints on client side to send updated role of a batch of users

9. Deadlines βœ…

  • Create questions schema and table in Prisma
  • Create options schema and table in Prisma
  • Create deadlines schema and table in Prisma
  • Set up deadlines endpoints on server side to provide milestone data
  • Set up deadlines enpoints on server side to allow creation of deadlines
  • Set up deadlines endpoints on server side to allow updates to data of deadlines
  • Set up deadlines endpoints on server side to allow deletion of deadlines
  • List display of all active deadlines with the option to view
  • Give administrators the option to edit and delete active deadlines
  • Viewing a milestone displays all its deadlines and deliverables (forms)
  • Connect to deadlines endpoints on client side to receive milestone data
  • Connect to deadlines endpoints on client side to send updated milestone data
  • Connect to deadlines endpoints on client side to delete future deadlines

10. Info Page βœ…

Sprint 4 (23 June - 8 July)

12. Projects βœ…

  • Set up projects endpoints on server side to allow updates to details of projects
  • Set up projects endpoints on server sdie to allow deletion of projects
  • Connect to projects endpoints on client side to send updated project data
  • Connect to projects endpoints on client side to delete projects
  • List display of all projects in Projects List page
  • Viewing a project's details in Project Details page shows level of achievement, submissions, students, mentor(s) and adviser(s) of the project
  • Allow advisers and administrators to edit level of achievement in Project Details Page
  • Allow administrators to delete projects in Projects List Page

13. Cohorts Page βœ…

  • Create cohorts schema and table in Prisma
  • Set up cohorts endpoints on server side to provide cohorts data
  • Set up cohorts endpoints on server side to allow updates to data of cohorts
  • Set up cohorts endpoints on server side to allow deletion of cohorts
  • List view of all cohorts showcasing start and end date
  • Allow administrator to edit start and end date of cohorts
  • Allow administrator to delete cohorts
  • Connect to cohorts endpoints on client side to receive cohorts data
  • Connect to cohorts endpoints on client side to send updated cohort data
  • Connect to cohorts endpoints on client side to delete cohorts

14. Deadline Details Page βœ…

  • Set up deadlines endpoints on server side to provide due date and description of deadlines
  • Set up deadlines endpoints on server side to allow updates to due date and description of deadlines
  • Set up deadlines endpoints on server side to allow addition of questions to a deadline
  • Set up deadlines endpoints on server side to allow deletion of questions from a deadline
  • Set up deadlines endpoints on server side to allow updates to questions of a deadline and their type
  • Set up deadlines endpoints on server side to allow addition of options to questions of a deadline
  • Set up deadlines endpoints on server side to allow updates to the options of questions of a deadline
  • Set up deadlines endpoints on server side to allow deletion of options from questions of a deadline
  • Display due date, description, questions (together with respective options) of a deadline
  • Only allow administators to access this page
  • Connect to deadlines endpoints on client side to receive deadline details
  • Connect to deadlines endpoints on client side to update deadline details
  • Connect to deadlines endpoints on client side to add questions to deadlines
  • Connect to deadlines endpoints on client side to delete questions from deadlines
  • Connect to deadlines endpoints on client side to update questions and question types
  • Connect to deadlines endpoints on client side to add options to questions of a deadline
  • Connect to deadlines endpoints on client side to update options to questions of a deadline
  • Connect to deadlines endpoints on client side to delete options to questions of a deadline

Sprint 5 (9 July - 22 July)

15. Submissions βœ…

  • Create answers schema and table in Prisma
  • Create submitter schema and table in Prisma
  • Create submissions schema and table in Prisma
  • Create evaluation groups schema and table in Prisma
  • Set up submissions endpoints on server side to provide evaluation group data
  • Set up submissions endpoints on server side to allow updates to evaluation groups
  • Set up submissions endpoints on server side to allow deletions of evaluation groups
  • Set up submissions endpoints on server side to allow submission of answers
  • Set up submissions endpoints on server side to allow updates to submitted answers
  • Create UI components for each question type
  • Render the correct components in the correct order for deadlines
  • Save poster and video to skylab server

16. Student Dashboard

17. Mentor Dashboard

18. Adviser Dashboard

19. Administrator Dashboard

20. Forum

Sprint 6 (23 July - 8 August)

21. Migration

22. Deployment

Clone this wiki locally