Skip to content

Feature List and Timeline

Rayner edited this page Jun 30, 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 Cohorts Page P0 Completed
2 Users Page P0 Completed
3 Deadlines Page P0 Completed
4 Deadline Details Page P0 In progress
5 Sign In Page P0 Completed
6 Reset Password Page P1 Completed
7 Change Password Page P1 Completed
8 Projects List Page P1 In progress
9 Project Details Page P0 In progress
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 Applications Page P3 Next milestone
16 Forum Page P2 Next milestone
17 Profile Page P2 Completed

Feature List with User Stories

Student Dashboard [P0]

    • As a student, I can view all my upcoming deadlines and their due dates
    • As a student, I can submit my answers to evaluation or deadline forms
    • As a student, I can edit my answers submitted answers before the due date
    • As a student, I can view my evaluations from other teams
    • As a student, I can view submissions from other teams in my evaluation group

Adviser Dashboard [P0]

    • 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 setup evaluation relationship between projects
    • 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

Mentor Dashboard [P0]

    • 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

Projects List Page [P1]

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

Project Details Page [P0]

    • As a student, I can view my project's details
    • As an adviser, I can modify my project's details change their level of achievement
    • As a mentor or adviser, I can view all the projects that I am responsible for

Project Gallery Page [P1]

    • 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 and their projects

Staff Page [P2]

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

Cohorts Page [P0]

    • 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

Users Page [P0]

    • As an administrator, I can view roles of all accounts
    • As an administrator, I can create new accounts with roles in current or future cohorts
    • As an administrator, I can batch create new accounts with student role in current or future cohorts
    • As an administrator, I can batch add the adviser role to existing users in current or future cohorts
    • As an administrator, I can add roles to existing accounts in current or future cohorts
    • As an administrator, I can delete roles from existing accounts in current or future cohorts
    • As an administrator, I can edit the role information of existing accounts in current or future cohorts
    • As an administrator, I can select an account to preview the website as

Deadlines Page [P0]

    • 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

Deadline Details Page [P0]

    • As an administrator, I can view a deadline's forms
    • As an administrator, I can add forms (a list of questions)
    • As an administrator, I can choose which questions should be anonymous
    • As an administrator, I can edit the forms of any future deadine

Profile Page [P2]

    • 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]

    • As a user, I can sign into the platform

Reset Password Page [P1]

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

Change Password Page [P1]

    • As a user, I can change my password by using my old password

Applications Page [P3] (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] (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

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 ✅ [1 subtask remaining]

  • 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 ✅ [1 subtask remaining]

  • 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 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)

11. Submissions ✔️

  • Create questions schema and table in Prisma
  • Create answers schema and table in Prisma
  • Create options schema and table in Prisma
  • Create submitter schema and table in Prisma
  • Create submissions schema and table in Prisma

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 ✅

Sprint 5 (9 July - 22 July)

15. Student Dashboard

16. Mentor Dashboard

17. Adviser Dashboard

Sprint 6 (23 July - 8 August)

18. Migration

19. Deployment

Clone this wiki locally