Project 1: Recording the Journey


Documentation Links

Documentation (.docx)
Designs

Description of Project

The purpose of this project is to develop an application that tracks and journals goals and various activities. My focus was around mental health, specifically tracking anxiety, any associated feelings, what activities or events triggered the anxious feeling, if it affected any daily tasks, and how long it has lasted for the user.

The rationale behind my focus was that I have been personally struggling with mental health, experiencing severe anxiety, and that part of the advice that was handed to me by several professionals, friends, and family was to write down everything. This would include any thoughts, emotions, triggers, impacts on my life, and beyond. I felt that developing an application with a mental health focus could benefit myself as well as others that are also struggling in their own ways.


Interviews and Feedback

In interviewing and collaborating with colleagues early in the project, they presented to me with concerns and expectations that the user must be able to record metrics that can allow viewing of trends or quantitative data over a period, as it is not easily measurable based on purely open-ended questions that could possibly be non-definitive over a course of time.

It was also brought up that users should be able to navigate through entries to view history, in a manner that is easy to learn and understand.

I have been reaching out to colleagues within the User Interface class, specifically about the design and layout, and have received positive feedback about how my layout incorporates the boxes to separate and group the information appropriately. Additionally, colleagues have appreciated the color scheme and its contrast between the background and text color as it was noted that it drew people’s attention while keeping things understandable.


Interface in Detail

The interface is only one single screen that users can view without having to scroll anything. The left side of the interface/screen consists of the overview information, including the following from top to bottom:


The middle consists of the main form, and entry navigation, to where users can fill out one entry per day and view all entries from before. The layout in the middle section is as follows from top to bottom:


The right side of the interface is the data for the user to review, including the following from top to bottom:


Implementation

This application is implemented using the Svelte framework, consisting of HTML, CSS, and JavaScript code, without any other usage of frameworks. The code for this application is hosted on GitHub and is hosted live with the Vercel service, which is connected to GitHub.


AI Usage

I utilized the GitHub Copilot extension for various aspects within Visual Studio Code as I do have a student-verified Pro Account with GitHub, which allows access to the Copilot tool. I was able to utilize the AI tool to help develop and debug the JavaScript/Backend code as I was encountering issues with the entries not updating and displaying correctly, in addition to the buttons on the main interface not calling the desired functions as intended.

Additionally, I have utilized Copilot to automatically generate comments within the code, which I have manually gone through and verified its accuracy. I have also been automatically generating the commit messages that are seen on GitHub for efficiency purposes as I have made the application live prior to developing and been pushing frequently to reflect my development online as I went along the process.


Future Work

Future work will include enhancing the layout to be evenly spaced and aligned with each other, as currently it is possible to see that the bottoms of the boxes are not in perfect line. Moreso, adjusting the layout to ensure that it is optimal on both laptop/desktop screens and mobile screens would be future work to improve accessibility to users given our usage of smart devices in our day and age.

Additionally, future work will also include fine-tuning the backend functionality of the form to ensure that users do not click the “delete” button when filing out a new entry as currently, there is a bug that the delete button will light up as active if a user types any data into a new field, though clicking the button will not erase any data. This can be seen as misleading and ideally, the delete button would only be active upon saving the new entry for the first time. There will also be changes to where the save button is replaced with a edit button to indicate that the form can be editable and not just utilize the same save button, which users as a result may believe that the form is not able to be changed.


Source Code and Demo

Soruce Code hosted on GitHub
Demonstration of UI
Live Application