Skip to content

Commit 37fadb8

Browse files
committed
Merge branch 'ty/scrum-176-documentation-upload' of https://github.com/UTSC-CSCC01-Software-Engineering-I/term-group-project-c01w25-project-course-matrix into ty/scrum-176-documentation-upload
2 parents a2c796e + 5ea1c97 commit 37fadb8

File tree

3 files changed

+379
-0
lines changed

3 files changed

+379
-0
lines changed

doc/sprint4/RPM.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Release Plan
2+
3+
## Release Name: Course_Matrix_V1.5.0
4+
5+
## 1. Release Objectives for Sprint 4
6+
7+
### 1.1 Goals
8+
9+
- Refine timetable features
10+
11+
- Enhance timetable UI
12+
- Resolve any known bugs
13+
- Timetable share
14+
- Timetable compare
15+
- Cap number of user timetables
16+
- Timetable favourites
17+
- Fix timetable generation flow
18+
19+
- Build upon AI-powered assistant:
20+
21+
- AI Chatbot can various timetable functions
22+
- AI Chatbot refinement.
23+
- Resolve any potential bugs in chatbot.
24+
25+
- Project Deployment:
26+
- Project has a usable dockerfile
27+
- Project is running on a VM instance
28+
- Project on update is automatically tested
29+
- Project auto redeploys on update
30+
- Unit Testing:
31+
- Project functions (frontend and backend) will have and pass unit/integration tests written for them
32+
33+
### 1.2 Metrics for Measurement
34+
35+
- **Timetable Management**
36+
37+
- Users can generate, create, modify, and delete timetables and event entries without errors.
38+
- Timetable UI has been enhanced with newest design
39+
- Timetables can be shared between users
40+
- Timetables can be compared to one another
41+
- Cap number of times tables per user
42+
- Timetables can be favourited
43+
- Timetable generate will not have overlapping timetable entries
44+
45+
- **AI Assistant Features**
46+
47+
- AI can be queried to generate timetables, delete timetables, show user timetables and more.
48+
49+
- **Deployment Features**
50+
- Project when deployed is deployed using a docker image
51+
- Project when deployed is accessible online on a virtual Machine
52+
- Project when updated is automatically unit tested
53+
- Project when updated and passing unit tests is auto-redeployed
54+
55+
**Unit Testing**
56+
57+
- Project functions are unit/integration tested so that their behaviour is clear and potential bugs are caught
58+
- Project functions passes unit/integration tests so bug free functionality is ensured
59+
60+
## 2. Release Scope
61+
62+
- **Timetable Management**
63+
64+
- Share your timetable with other users
65+
- Favourite timetables for quick access
66+
- Compare your timetable with other timetables
67+
- Update and refine timetable UI
68+
69+
- **AI Assistant**
70+
71+
- AI-Powered timetable generation, deletion, and queries
72+
73+
- **Deployment**
74+
- Project runs on a docker image
75+
- Project is accessible on the web while running on a VM instance
76+
- Project on update is automatically tested
77+
- Project auto redeploys on update that passes tests
78+
79+
**Unit Testing**
80+
81+
- Project functions (frontend and backend) are unit/integration tested
82+
83+
### 2.2 Excluded Features
84+
85+
- Currently no excluded features this sprint
86+
87+
### 2.3 Bug Fixes
88+
89+
- Fix text highlight on edit username
90+
- Creating timetable with same name causes user to be stuck in loading screen
91+
- Semester button non functional
92+
- Timetable generation sometimes doesn’t generate all meeting sections (and no error msg)
93+
- Generate flow cannot edit manually after generation
94+
- Timetable only generate partially
95+
- Fix time strings sent to timetable generate
96+
- Timetable title max char limit
97+
- Reading week inclusion
98+
- AI hallucinating courses
99+
- Favourite not functional
100+
- Last edited not being updated properly
101+
- Hide restriction config for manual flow & prevent modification of restrictions in edit flow
102+
- Add select all button
103+
- Fix misc. Bugs in generation flow
104+
- Hotfix 1.0.5 Restriction form type toggle persists old values
105+
- Deployment timezone being incorrect
106+
- Fix frontend unit test mocking
107+
108+
### 2.4 Non-Functional Requirements
109+
110+
- **Testing**
111+
112+
- Further integration and unit tests need to be added for both our frontend and backend
113+
114+
- **CI/CD Workflow**
115+
- We need a CI/CD pipeline for our application so that only the latest functional version of our application is running at all times.
116+
117+
### 2.5 Dependencies and Limitations
118+
119+
- The AI assistant relies on querying an external vector database and OpenAI. Bothe of these are online resources so if they are down our feature will be down as well.
120+
- The Timetable relies solely on the internal course database and installed dependencies. It does not fetch web-based content.
121+
- Unit testing relies solely on internal functions and installed dependencies. It does not fetch any web-based content.
122+
- The deployment relies on fetching the latest project version from github and (if it passes all unit tests) deploys the latest version on our google cloud virtual machine instance using docker hub storing the various images of our application.

doc/sprint4/iteration-04.plan.md

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# Course Matrix
2+
3+
## Iteration 04
4+
5+
- **Start date**: 03/21/2025
6+
- **End date**: 04/04/2025
7+
8+
## 1. Process
9+
10+
### 1.1 Roles & Responsibilities
11+
12+
#### Epic 1: Scheduler
13+
14+
**Team Members:** Austin, Minh, and Thomas
15+
16+
- Develop a calendar interface that allows users to favourite their calendars.
17+
- Develop an interface that allows users to share their calendars with one another.
18+
- Develop an algorithm that allows users to compare two different timetables together.
19+
20+
#### Epic 2: AI Assistant
21+
22+
**Team Members:** Kevin
23+
24+
- Develop an AI-powered chat interface that can create, delete, and show user timetables.
25+
- Refine AI-powered chat interface so that querying for database information is more reliable and understandable
26+
27+
- **Note taking & Documentation**: Minh, Masahisa, and Thomas
28+
- Taking notes during stand-ups
29+
- Create sprint 4 documentation: iteration-plan-04, RPM, and sprint-04 review
30+
- Update System Design Document
31+
32+
In addition to their specific roles, all team members have a collective responsibility to support and assist other team members to ensure that the goals (listed in section 2.1) are achieved and develop a working prototype.
33+
34+
#### Epic 3: Deployment
35+
36+
**Team Members:** Masahisa
37+
38+
- Create a dockerfile such that our application can be run on a docker image with application setup being done automatically.
39+
- Ensure that our application’s docker image runs on a VM instance accessible on the web.
40+
- Ensure that our deployed project automatically redeploys when a new version of our application is pushed that passes all unit testing.
41+
- Ensure that our application images are stored on dockerhub with a version tag and a master branch holding the latest version.
42+
43+
#### Epic 4: Unit Testing
44+
45+
**Team Members:** Austin, Minh, Thomas, Kevin
46+
47+
- Create unit tests for our application functions (timetable, ai assistant, user stories, etc.) such that their functionality is clear and bug free.
48+
49+
#### 1.2 Events
50+
51+
- **Initial planning meeting**:
52+
53+
- Location: Virtual
54+
- Time: 3/22/2025
55+
- Purposes:
56+
- Go over the sprint 4 requirements
57+
- Define tasks and responsibilities for each team member
58+
59+
- **Stand up meeting**:
60+
61+
- Location: Online or in-person depending on members availability
62+
- Time: Every Tuesday from 12 pm to 1 pm, Thursday and Sunday from 9 pm to 10 pm
63+
- Purposes
64+
- Progress updates: What has each member done since the last stand-up
65+
- Determine the next steps and deadlines
66+
- Discuss current blockers and possible solutions
67+
68+
- **Final review meeting**
69+
- Location: Online
70+
- Time: 4/04/2025
71+
- Purposes:
72+
- Review features and deliverables implemented in sprint 4
73+
- Determine changes that need to be made in sprint 4
74+
75+
#### 1.3 Artifacts
76+
77+
- Our team will track the progress through Jira
78+
79+
- Each user story will be uploaded to Jira as a ticket:
80+
81+
- Categorized in the backlog by its epic, and execution sprint
82+
83+
![JIRA Backlog](./images/JIRA_Backlog.png)
84+
85+
- Ticket details include: estimated story point to determine its priority, assignees
86+
87+
![Ticket Detail](./images/Ticket_Detail.png)
88+
89+
- Tickets of large user stories will be broken down into smaller child issues
90+
91+
![Ticket Description and Child Issue](./images/Ticket_Description_and_Child_Issue.png)
92+
93+
- Each ticket will also show:
94+
95+
- Other tickets blocked by it
96+
97+
![Blocked tickets](./images/Blocked_ticket.png)
98+
99+
- Other tickets blocking it
100+
101+
![Blocking tickets](./images/Blocking_tickets.png)
102+
103+
- Additional tasks required during the development process will also be submitted as a task ticket on JIRA for tracking.
104+
- Students or groups of students will be assigned first to epic and then to the specific user story.
105+
- Workflow
106+
107+
![Ticket Workflow](./images/Ticket_Workflow.png)
108+
109+
- Furthermore, we will implement a Burndown Chart, which will be included as `burndown.pdf` by the end of the sprint. This chart will also feature comments on the sprint's progress and a velocity comparison.
110+
- Below is an example Burndown Chart from Sprint 0:
111+
112+
![Burndown Chart](./images/Burndown.png)
113+
114+
## 2. Product
115+
116+
#### 2.1 Goal and Tasks
117+
118+
**1. Develop product features for the product demo:**
119+
120+
- _Epic 1: Scheduler_
121+
122+
- Timetable Compare: [SCRUM-62](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-62)
123+
- Timetable Favourite: [SCRUM-57](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-57)
124+
- Timetable Export/Share:
125+
[SCRUM-58](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-58)
126+
127+
- _Epic 2: AI Assistant_
128+
129+
- Delete confirmation for chatbot:
130+
[SCRUM-148](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-148)
131+
- Prevent Chatbot from creating more than 1 timetable at once:
132+
[SCRUM-149](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-149)
133+
134+
- _Epic 3: CI/CD Pipeline_
135+
- Project Deployment:
136+
[SCRUM-130](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-130)
137+
- Assignment 2 Completion: [SCRUM-163](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-163)
138+
139+
**3. Create sprint 4 documentation:**
140+
[SCRUM-176](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-176)
141+
142+
#### 2.2 Artifacts
143+
144+
### Pages/Features
145+
146+
#### Scheduler
147+
148+
- Option to favourite timetables for quick access.
149+
- Option to share/export timetable to other users
150+
- Option to compare two separate timetables
151+
- Enhance frontend UI to be more usable
152+
153+
#### AI Assistant
154+
155+
- Ability to generate, delete, create, view timetables and more using AI chatbot
156+
- Deleting anything with chatbot must only be done after another user confirmation

doc/sprint4/sprint-04.review.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Course Matrix/term-group-project-c01w25-project-course-matrix
2+
3+
## Iteration 04 - Review & Retrospect
4+
5+
When: 4/04/2025 at 9:00 pm
6+
7+
Where: Online
8+
9+
## Process - Reflection
10+
11+
In Sprint 4, our team focused on finishing up any trailing features and then refining our application so that it has as few bugs as possible. Additionally, we refined our UI and added additional tests to resolve any potential bugs.
12+
Our team successfully generated and implemented the following features:
13+
14+
- Refined timetable operations via AI
15+
- Timetable compare
16+
- Timetable share
17+
- Timetable favourite
18+
- Additional unit/integration testing our application
19+
20+
By the end of sprint 4 we were able to complete all of our features, with the majority of our time this sprint spent finding and resolving bugs or adding additional unit/integration tests.
21+
22+
Our timetable is now fully functional, now with additional features. Users can now share their timetables with other users using their emails. Additionally, users can favourite and compare their timetables.
23+
24+
Our AI assistant’s functionality has been expanded upon and refined. Now, when sensitive operations are performed by our AI, various safeguards have been added (e.g. when deleting a timetable a further confirmation must be done). Additionally, various queries that could potentially break the chatbot have been patched.
25+
26+
The setup for deploying our application has been completed, with the latest functional version of our application already deployed on google cloud with a CI/CD pipeline. Currently, if a new change is pushed to main and it passes all tests the application is then deployed on our google cloud virtual machine.
27+
28+
In conclusion, during sprint 4 our application has been finished and further refined.
29+
30+
### Decisions that turned out well
31+
32+
1. **Finishing User Stories**
33+
34+
One decision that turned out well for us was finishing as many user stories as possible in the previous sprints. By doing this we were able to focus the majority of our efforts this sprint in refining all our user stories making our application the best possible version of itself. We resolved countless bugs, pushed QOL features, and optimized our application greatly.
35+
36+
2. **Rehearsing our Presentation**
37+
38+
For our sprint 4 presentation, we decided to complete both the slides and the script ahead of time. This allowed us to rehearse our presentation multiple times and refine it to perfection. Due to this our presentation was excellent.
39+
40+
### Decisions that did not turn out as well as we hoped
41+
42+
1. **Leaving Sprint 4 Deliverables for Later**
43+
44+
During sprint 4 we left completing our deliverables for later (e.g. NFR). We thought that focusing on refining our application should come first. This meant that we had to scramble to complete our sprint 4 documentations near the end of the sprint. This led to potential oversights in our documentation.
45+
46+
2. **We didn’t use TDD**
47+
48+
We set up our tests for our application quite late into its development. This meant that almost all of our tests were redundant, with us discovering bugs manually and the tests only being useful in defining our application’s behaviour.
49+
50+
## Product - Review
51+
52+
#### Goals and/or tasks that were met/completed
53+
54+
- Fix text highlight on edit username [SCRUM-131](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-131)
55+
- Project deployment [SCRUM-130](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-130)
56+
- Timetable sharing [SCRUM–58](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-58)
57+
- Timetable favourite [SCRUM-57](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-57)
58+
- Timetable Compare [SCRUM-62](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-62)
59+
- Timetable Frontend Enhancements [SCRUM-145](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-145)
60+
- Fix creating Timetable with same name causes user to be stuck in loading screen [SCRUM-146](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-146)
61+
- Fix semester button non-functional [SCRUM-147](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-147)
62+
- Delete confirmation for chatbot [SCRUM-148](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-148)
63+
- Prevent chatbot from creating more than 1 timetable in a single cmd [SCRUM-149](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-149)
64+
- Fix timetable generate flow cannot edit manually after generation [SCRUM-150](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-150)
65+
- Fix timetable generation only generate partially [SCRUM-153](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-153)
66+
- Fix time strings sent to timetable generate [SCRUM-154](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-154)
67+
- Timetable generation refinement [SCRUM-155](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-155)
68+
- Timetable title max char limit [SCRUM-156](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-156)
69+
- Reading week inclusion for timetable [SCRUM-157](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-157)
70+
- Fix AI Hallucinating courses [SCRUM-158](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-158)
71+
- Timetables limit [SCRUM-159](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-159)
72+
- Fix favourite non functional [SCRUM-161](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-161)
73+
- Assignment 2 Completion [SCRUM-163](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-163)
74+
- Hide restriction config for manual flow & prevent modification of restrictions in edit flow [SCRUM-166](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-166)
75+
- Comparing shared timetables [SCRUM–167](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-167)
76+
- Add select all button [SCRUM-169](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-169)
77+
- Clean UserMenu so there are no useless fields [SCRUM-170](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-170)
78+
- Fix Misc. BUgs in Generation Flow [SCRUM-171](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-171)
79+
- Image improvements + logo + frontend tweaks [SCRUM-168](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-168)
80+
- Presentation [SCRUM-172](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-172)
81+
- Fix Restriction for type toggle persists old values [SCRUM-173](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-173)
82+
- Deployment Time Zone Hotfix [SCRUM-174](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-174)
83+
- Refactor constants.ts [SCRUM-177](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-177)
84+
- Finish auth.test.ts tests [SCRUM-178](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-178)
85+
- Fix frontend unit test mocking [SCRUM-179](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-179)
86+
- Add more frontend tests [SCRUM-175](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-175)
87+
- Backend integration tests [SCRUM-180](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-180)
88+
- Speed up test execution by running all tests serially in the current process [SCRUM-181](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-181)
89+
- Add some more frontend integration tests [SCRUM-182](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-182)
90+
- Organize backend tests into unit and integration tests [SCRUM-183](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-183)
91+
- Update REAME setup [SCRUM–184](https://cscc01-course-matrix.atlassian.net/browse/SCRUM-184)
92+
93+
#### Goals and/or tasks that were planned but not met/completed
94+
95+
We completed everything and are the best team.
96+
97+
## Meeting Highlights
98+
99+
We have decided to do the following from here on out:
100+
101+
1. Study hard for our CSCC01 final exam.

0 commit comments

Comments
 (0)