Using Calendar apps to manage your university tasks can be highly visually overwhelming and the priority of tasks are lost in the chaos. TaskFloat’s goal is to show you what’s coming up in a fast, effective, interactive and personalised way. Through quality attributes such as; interoperability, modularity, and reliability the user will have an easy to use, personal, and trustworthy solution to their to-do list needs!
Name: Connor Shane Morrison
Student number: 47026975
Using an interesting customisable user interface resembling task cards/to do items floating in a pool, the user will be shown their upcoming tasks in intriguing way. With modular design choices user displays and their functionality will be adjusted to suit each user. This will be implemented using toggle options for various functionality for the users page. This will personalise each ‘task pool’ to each user (a task pool will be the user’s main display of tasks).
The user interface will be interactive such that users can drag around task cards in the task pool and observe them bump into each other as if they were floating. Also, each task will have two visually striking components. First each task will grow in size as it’s ‘priority value’ increases (this will be based on time and an initial priority set by the user), e.g. lower time and higher priority will be a large task card. Secondly the task cards will be grouped by colour so users can easily filter by and group tasks. These both will help user’s direct their attention to whats most important.
The system must work seemlessly with calendar softwares such as the Apple Calendar and Google Calendar. This will increase practicality for users and allow seamless transition between the softwares. TaskFloat will achieve this by implementing the ability to copy tasks from calendar apps, send tasks in TaskFloat to calendars, and to set up auto synchronization between calendar tasks and TaskFloat tasks.
TaskFloat will also implement a loadbalancer and autoscaling on Amazon Web Services to ensure reliability and consistent performance whilst being cost-effective to run. This will allow the website to handle a varying quantity of requests at different times which is to be expected as popularity grows.
The service will be implemented on a website and mobile apps with interoperability with all major calendar apps to increase availability. Doing this will improve user experience drastically and increase number of plausible users the service could assist.
The minimal viable product will only implement some of the main functionalities of the system. These elements will be the interoperability between calendar apps and TaskFloat, the modular user interface and functionality, and support for large numbers of requests made to the APIs.
The highest priority will be the interoperability of the service. The service must be able to send POST requests to the Google Calendar API to create tasks on the Google Calender which are created in TaskFloat. Furthermore, the service must be able to send GET requests to be able to get existing calendar events on Google Calendar for a given calendar. Lastly, the service must be able to perform an auto synchronisation on start up such that the user always has an up to date TaskFloat task pool. The user should be notified if a task is gotten from the calendar by either method.
The second highest priority will be the modularity component of the solution. Each UI component should be seperated and togglable for each element. Then on a user settings page, users can design every task card or specify special rules for different task card categories. Having these modular UI components will simplify code and allow for easy modifications.
The third highest priority will be the reliability component, it is expected that users will make large requests to the Google Calendar API and for it to return many events. This will strain the system, the solution that will be implemented is a load balancer, this will help spread our computation requirements over as many machines as necessary. Also, a auto-scaler will be implemented as to minimise cost to run this service by utilising the minimum computing power required.
This is going to be demonstrated through strong interoperability with the Google Calendar API through POST and GET requests. This will allow sharing of data to improve practicality.
A modular user interface system is going to simplify code and decrease the size of the solution to create a lightweight, fast website. This will also allow the user to personalise their task pool.
Using Terraform and AWS service to implement load balancing and auto-scaling will allow for great reliability, even during peak demand times. This is likely to be required as many HTTP requests are going to be sent to and from our solution.
Our proposal will be evaluated against the success criteria outlined in the quality attributes stage. Each success criteria to be passed must achieve the following tests.