Assistant AI 助手 AI
Apollo 11
Our web application, 助手 AI , which stands for Assistant AI in Japanese, will be a task management web application that allows users to track and organise their due tasks for better productivity and boosts user engagement via implementing a virtual assistant character.
With our Web Application, we aim to add utility and functionality with personalization. We understand that people have personal, work and familial responsibilities, which are all bound to have tasks to be completed. 助手 AI aims to help users organise tasks, record ongoing progress and provide analytics on their current productivity with a personal Assistant AI to serve reminders and engage users as their own personal characters.
Our goal is to develop a task management application that helps users to organize their tasks efficiently and encourage commitment to task fulfillment through a personal rewards system.
- As a University student who has a lot of tasks at hand, I sometimes don't feel the motivation to complete my tasks.
- As a student who always create and organize my tasks on my smartphone, I wish that someone would help me automate that process through voice commands.
- As a Computer Science student who spends most of my time in front of a screen, sometimes I get too carried away and notifications of my tasks would go unnoticed and I would miss a deadline, I wish there was an assistant who would verbally remind me of those tasks.
- As a University student who has to juggle between multiple tasks of different levels of priorities, I wished there was AI who could help me with that and give reminders based on deadline priority.
- Frontend - React, HTML, CSS
- Backend - Node.js, Express.js
- Database - MySQL
- Unit Testing - Jest, Vitest & React Testing Library
- Users are required to have the following installed: Node.js, Express.js and MySQL
- After cloning, users need to setup a MySQL database and configure it to the config folder by matching the name and password
- For running the frontend, users may run "npm run dev" from /client
- For running the backend, users may run "npm run server" from /server
Assistant AI is essentially a task management system with the help of a Virtual Assistant to automate simple tasks for a more interactive user experience.
- Users to be able to sign up for account.
- Users to be able to log in / log out of account.
- Users to be able to add tasks.
- Users to be able to edit tasks.
- Users to be able to delete tasks.
- Users to be able to complete tasks.
- Users to be able to uncomplete tasks.
- Users to receive reminders on time.
- Users to be able to view tasks by categorisation.
- User productivity report analysis (based on task completion).
- User voice to provide input to automate each task.
- Interactive voice lines (Birthday wishes, greetings, daily life conversations).
Extensions
- Tasks Prioritisation Suggestion by AI.
- Recurring Task (Periodically Recurring Tasks).
- Exchange of Points for Decorative Items and Accessories for the Virtual Assistant.
- Sign Up
- User to be able to sign up for new account using a unique username and password
- Username to be unique, user to face error if signing up for new account using existing username
- Users to start off with 0 points
- Login / Logout
- On Login, users should be redirected to the home page where there is a dashboard that displays the following
- Tasks by deadline and priority
- Reminders of Tasks
- User Productivity Rate
- On Logout, users should be redirected to the login page
- Add Tasks
- Users to be able to add tasks with the following fields:
- Title
- Description
- Category
- Priority
- Reminder (DateTime)
- Deadline (DateTime)
- Edit Tasks
- Users to be able to edit the following fields for a task:
- Title
- Description
- Category
- Priority
- Reminder (DateTime)
- Deadline (DateTime)
- Delete Tasks
- Users to be able to delete tasks from the dashboard / edit task section
- Complete Tasks
- Users to be able to press complete task, in which task completion will reward users with XP points. Late completion of tasks will reward with 1 points.
- Uncomplete Tasks
- Users to be able to press uncomplete task, in which points earned will be deducted.
- Receive Reminders (To be developed further)
- Users to receive reminders from the AI Assistant when the task has reached the reminder date
- View Tasks - Categorisation
- Users to be able to sort their task list using a sidebar that shows the filters available
- Productivity Report
- Generate a productivity report showing productivity rate based on number of tasks completed, date of task completion relative to deadline, and priority of tasks completed
- Tasks completed before the deadline will result in higher productivity
- Tasks completed after the deadline will result in lower productivity
- Tasks yet to be completed after the deadline will also result int lower productivity
- The priority of tasks will affect the weightage and its increase on decrease in productivity rate
- Automation Task (In Progress)
- Website to allow voice input to generate and fill in task fields using speech recognition
- Interactive Voice Lines (In Progress)
- Users to receive voice output from AI Assistant for events (Greetings for logging in, birthday wishes, simple conversations, etc.)
Extension Features
- Task Priority Suggestion
- To allow suggestions by AI on the priority of task based on title of task (e.g. Cleaning of Dishes - Low, Meeting with Client - High)
- Recurring Tasks
- Site to provide automatic creation of recurring tasks based on creation
- Daily / Weekly / Monthly (To be explored)
- Exchange of Items using Points
- To provide a “shop” to exchange decorative items for the Assistant AI
- Decoration and customisation of the Assistant AI character will bring gamification and engagement to users
| Milestone | Tasks | Month | Week(s) |
| 1 | Research on relevant technologies, including speech recognition and neural networks. | May | 3 |
Pick up the necessary tech knowledge for front-end back-end and attending Mission Control Workshops. | |||
| Set up the front-end by creating a basic interface for home, sign up, login and task pages. | 4 | ||
| Research on the databases to use for back-end, set it up, and achieve a successful connection between the front-end and back-end. | |||
| Completion of the sign up form and implement error handling for it in both front and back-ends. | |||
| 2 | Implementation of authentication for signed-in users. | June | 1 |
| Complete the login page with error handling for it. | |||
| Implementation of all the task-related functions. (Add, Edit, Delete, and Complete w/ Calculation of points earned) | |||
| Implementation of a reminder prompt when near the deadline/ reminder time indicated by the user. | 2 | ||
| Complete task viewer page with the categorization feature. | |||
| Implementation of User Productivity Report Analysis. | |||
Begin preparation for implementation of the Virtual Assistant. (Character design, personality) | 3, 4 | ||
| User input features (Speech recognition, Natural Language Processing) | |||
| Interactive Voice Lines (Write-up) (Implementation if there's time) | |||
| 3 | Further Improvements to the AI of the Virtual Assistant. | July | 1 |
| Research into ways to give the Virtual Assistant an actual human voice. | |||
Tidy up the front-end of the web application. (Adding better CSS styling for a greater user experience) | |||
| Implementation of the AI voice. | 2 | ||
| Continue to work on when would each voice line be said in the web application. | |||
| Task prioritisation by the Virtual Assistant. | |||
| Implementation of Recurring Task (Periodically Recurring Tasks). | 3, 4 | ||
| Points Exchange System. | |||
| Design of Decorative Items and Accessories for the Virtual Assistant. | |||
| Final Brush Ups to the system. |
Database Diagram
Sequence Diagram
User Flow Diagram
-
Front-End Unit Testing
-
Unit Testing for the frontend components were conducted using Vitest and React Testing-Library. As of now, only the tasks and tasksbox have simple tests to run and more will be added for other units / components.
-
Certain functions are also unit tested using Jest to ensure that they work as intended.
-
Some examples of unit tests are shown below:
-
-
BackEnd Unit Testing
- Unit Testing for the backend API server conducted using Postman API Testing to verify that API functions correctly when the request is sent from the client.
-
Version Control
-
Code Readability
-
Single Responsibility Principle
- Ensuring each component has only one responsibility.
-
Documentation
https://drive.google.com/file/d/1zJ-W6Mnwhf3kvtDq5AHZDyBLQlX40LVF/view
https://docs.google.com/spreadsheets/d/17HxSnRviubHJgGpeZq1HtBrLmgk7EVS24I_u2EfXtiA/edit?usp=sharing















