-
Notifications
You must be signed in to change notification settings - Fork 4
Feature List and Timeline
Rayner edited this page Jun 29, 2022
·
13 revisions
NUS Skylab is a platform built using Ruby on Rails used to conduct NUS Orbital (CP2106), a self-directed software engineering project module during the summer for year 1 NUS students. Our goal is to redevelop the platform with a modern JavaScript tech stack so as to
- Improve maintainability by future developers working on the platform
- Improve the UI of the website and UX of Orbital staff, mentors, advisers and students
-
- 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
-
- 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
-
- 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 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
-
- 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
-
- 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
-
- As a user, I can view all staff involved in Orbital across all cohorts and get their contact information
-
- 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
-
- 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
-
- 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
-
- 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
-
- As a user, I can view any user's profile details
-
- As a user, I can edit my own user profile details
-
- As a user, I can sign into the platform
-
- As a user, I can reset my password which emails me the new generated password
-
- As a user, I can change my password by using my old password
-
- 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
-
- 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
- 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
- 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
- Responsive navbar
- Footer
- Button
- Typography
- Form controls
- Select
- Radio
- Input
- 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
- 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
- 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
- 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
- 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
- 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
- Add a link to orbital.comp.nus.edu.sg
- 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
- 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
- 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
| Frontend | Backend | Infrastructure | Project Management |
|---|---|---|---|
| Next.js | Express.js | Docker | Jira |
| TailwindCSS | PostreSQL | Nginx | GitHub Wiki |
| Jest | Prisma | PM2 | Google Docs |
| Service | Purpose | Cost |
|---|---|---|
| Sendinblue | Sending emails in bulk | $29/month |