top of page
AR Top
Anchor 1

School-Life Balance
Application:

Using Swift

about the project...

I created this project in the Spring of 2022 in my Programming Handheld Systems course. I worked with two of my friends to create a prototype of this application on Xcode using Swift. We wanted to create an app that includes a visual representation of a student's schedule, helps students manage their time and promotes mental health awareness. As students ourselves, we understood the importance of handling stress and anxiety. We wanted to help students find that perfect balance between school and life.

the process:

1. research

Screen Shot 2023-03-08 at 1.06.52 AM.png
Screen Shot 2023-03-08 at 1.08.43 AM.png
Screen Shot 2023-03-08 at 1.10.16 AM.png
Screen Shot 2023-03-08 at 1.12.42 AM.png
Screen Shot 2023-03-08 at 1.13.56 AM.png
Screen Shot 2023-03-08 at 1.14.36 AM.png

2. setting goals

First, we established that the main goal of our application is to help students with time management. We wanted to make our application extremely user-friendly so students can easily navigate the application, create a To-Do List and set reminders for tasks.

​

We also wanted to add several features to make our application stand out from applications that are currently available on the market. We decided to add a feature so tasks can be ordered either sequentially by the due date or by a given tag name. This feature is especially beneficial for college students who have multiple competing priorities. Specifically, we decided to add the following features to our application...

Notes

This feature allows users to add additional details to each task. For instance, if the user wanted to make sure that only the first five pages were being completed for his/her math homework, the user would create a task named “Math Homework” and then specify “Only first five pages” in the notes section. 

Tags

This feature allows the user to specify a category for the task being created. For example, if a user is creating multiple tasks that relate to a category like math, the user can add a tag saying “Math” when creating the task. The user can see which categories their tasks fall under, and also sort the tasks based on tags.

Reminders

Reminders are an essential feature of To-Do lists. Our app allows the user to add a reminder when a task is being created. Reminders are turned on by clicking the toggle button on the “Add New Task” page when creating the task. When a reminder is turned on for a task, the main page where tasks are listed (“Your To Do List This Week” page) will display a reminder stating the task and the day it’s due. For example, if the user creates a task called “Math Homework”, specifies that it is due on Friday, turns on the reminders toggle, and then clicks the “View Reminders” button on the main page, a message will pop up saying “Math Homework is due this Friday!”.

Sorting

Users can sort the list of tasks in two separate ways. The first is sorting by the deadline, and the second is sorting by tag.

3. coding and collaboration

Next, we distributed tasks to ease the coding process. We wrote code individually. Then, we would push and merge our changes on GitLab.

 

Additionally, we set milestone dates every few weeks so we could keep track of our progress. At each milestone, we wrote a thorough report describing the goals we met and and failed to meet.

​

For example, our first milestone goals were to create tasks with deadlines, add functionality to scroll through a list of tasks, create notes for tasks, auto-sort tasks by their due date, and mark tasks as complete or incomplete. We met the first three goals by the first milestone due date. We decided to allocate more time to meet the last two goals. Over spring break, we worked together to successfully complete the last two goals.

 

Our second milestone goal was to add reminders for tasks, tags for tasks, ability to sort tasks by tags or by due date, and icons for each task. We were able to successfully add these features and complete our project on time!

user interactions: what the app looks like in action!

adding a task to the To-Do List...

Untitled_Artwork.jpg
Untitled_Artwork 4.jpg
Untitled_Artwork 4.jpg
Untitled_Artwork 5.jpg

There are many exciting features we can add to our existing application. For example, in the future we hope to add persistence. Persistence wasn't under our milestone or stretch goals due to time constraints. With more time, we will be able to add persistence by restructuring our data model to work with core data. 

​

We also want to add an algorithm that creates a custom schedule for users. This algorithm would require the user to enter the amount of time it will take to complete each task and when the task is due. The algorithm would use this info to develop a custom schedule for the user. The application would recommend how much time the user should allocate on certain days to complete the specified project.

potential future directions:

© 2023 By Ashwittha Ganesan.

bottom of page