Before reading this section, I recommend reading through parts 1 & 2 of project LMS to understand why this subproject exists.
[1] Core Concepts & Evaluations
Core Concepts Before starting with this project, I want to cover some core concepts I want. Namely: Ease of use All commonly-performed things (e.g., adding a task, scheduling a task) should be the easiest things to do in the app. Reducing usage difficulty is key to making me stick to using it. Out of sight, out of mind. I tend to get easily distracted by what I should be doing due to excess information. Thus, for dashboards or similar screens where I only need to be aware of what I need to do next, all events that I can do nothing about should be hidden away or made less prominent. The inverse is true. For example, on a task management screen, I want all the tasks I am able to complete right now to be visible so that I am aware of their existence. Multilevel Prioritization I like to have at least two levels of priority. An example of this “multilevel” prioritization is having two categories, personal projects and schoolwork. Obviously, schoolwork is prioritized over personal projects. Within the schoolwork category, there could be my assignments which are prioritized by deadline or difficulty (or both), while within the personal projects category, there could be “IoT alarm clock” and “Desk lamp, " which are prioritized as I see fit. I feel like this is necessary because I have many categories of tasks in my life, and having to prioritize all tasks in one prioritization level makes things messy. Creation + Scheduling separation For me, I notice that I tend to have two modes when it comes to creating tasks: idea mode and scheduling mode. In idea mode, I come up with tons of discrete tasks, while in scheduling mode, I figure out when I want to execute those tasks. I think it is important to keep these two separate, as when I come up with tasks, I’m often in situations where I don’t want to dwell on the idea for too long (commuting, in the middle of another task, etc). Therefore, if I have to schedule it, I might do it hastily, or worse, I would skip marking the idea down altogether as it is too much of a hassle. Subtasks I feel like it’s important to have subtasks because one major way to reduce the friction when starting a task is to break a task down into smaller pieces. However, if I simply turn all subtasks into full tasks, it makes the system very cluttered. Evaluation Using the core concepts discussed earlier, I will now walk through some existing systems I have attempted to use. This is going to be how I’ll isolate some good ideas from things I have already used. ...