tskManager is a web application that allows users to:
- Create and manage todo list under /dashboard (must first login)
- Schedule and create timed tasks under /calendar (must first login)
- Search and add Modules under /
- View current todo task (miscellaneous task) and scheduled task (from calendar) and modules that we are taking under /module (must first login)
tskManager aims to streamline the process of managing tasks and homework on top of module requirements by automatically adding exam dates, details into the calendar
The requirements for tskManger was gathered through conducting surveys on the number one stressor as students in NUS.
The software architecture of the tskManager follows the Component-Based architecture enforced by React. It can be further modified to use Model View Controller (MVC) architecture by implementing libraries such as React-Redux
- JavaScript code follows the Airbnb style guide.
- CSS code adheres to BEM (Block Element Modifier) methodology.
- Consistent indentation
- Git is used for version control.
- Separate branches are created for development purposes
- Code reviews conducted before merging into main branch.
- Unit tests written using Vitest.
- Continuous Integration abstracted using GitHub and netlify.
- tskManager development follows a test-driven development (TDD) approach.
- Unit testing is performed to verify functionality of each component before Integration testing, which is also done using Vitest
- Run npx Vitest to test the components.
- System testing is done right after integration testing using Katalon.
- Conducted Every Month from July 2023 to August 2023 right after unit, integration and system testing.
- User faced the issue whereby the datepicker is not in 'en-GB format' but in MM/DD/YYYY. This issue was subsequently redressed (July)
- User faced the issue whereby the todo list rendering is too slow while waiting for information to be retrieved from supabase. This was subsequently optimised using session storage. (July)
tskManager Installation process:
- Install the latest version of node package manager
- Clone this project
- create supabase project and place key and url in .env file under frontend, where: VITE_KEY = {{Insert Supabase Key here}} VITE_URL = {{Insert Supabase URL here}}
- run cd frontend && npm install
- run cd frontend && npm run dev for local hosting
React, Supabase, HTML, CSS, JS, PostgreSQL