I got the inspiration for hourLY at the beginning of this year. I was taking Advanced Placement classes which were much harder than the usual ones and I spent much more time studying. While studying, I found myself focusing more on the classes that I liked rather than those I actually needed help with. After this, I started focusing more on the classes I needed help with, but ended up again neglecting come of my other classes. I recognized that this was not an effective studying technique and started making an app to manage my time.
What it does
My app manages studying times by dictating the times at which I should study for each class. Anyone can use it, whether they are studying for their classes or managing projects, the app provides a solution. It makes sure that the amount of time I spend studying for each class should be the same. After downloading the app, you can create a class or subject and add start and end times. The app will remind you when these times come so you can start or stop studying. But there's also another feature, a machine learning algorithm. The start and stop times may not always reflect the amount of work needed for that class so there is also the option to extend the class or end it. If you finish studying before the end time, you can end the class at that moment. If you didn't finish before the end time, you can also extend the class by as much ass you need. Whenever you do either of these, the phone collects data about how long you studied for each class. This data is then parsed every week and run through a machine learning algorithm to find patterns. These patterns are then used to predict how much time the student would need the next week and would adjust the timing accordingly. The app will give more time to the classes which you need help with to maximize studying effectiveness, rather than simply using the user-given times like an alarm clock.
How I built it
The app was built in MIT App Inventor. Everything was designed with the user in mind. The inputs in the app were all positioned on the screen to ensure reachability, such as the home page with all the buttons at the bottom of the screen. The user interface was also adaptable, accommodating even the smallest and largest of phones and tablets. All the input methods had small vibrations when pressed, in order to provide haptic feedback to the user and improve the experience. The buttons were also color coded, subliminally preventing the user from accidentally making irreversible changes. Dialog boxes to confirm a change were also used for this purpose. Overall, I ensured that the GUI was easy and natural to use even for someone who is new to the app.
Challenges I ran into
One of the major challenges I faced when making hourLY was simply using MIT App Inventor. Since it is relatively simple compared to many of the programming languages I use, it was a challenge to figure out the methods of implementing a certain aspect of it. My solution to this was to write out what I wanted to do and follow it step by step to implement it. Another challenge I faced was creating the machine learning algorithm. Being the main part of the app, this took the most time. Normally, I would simply use a module to write out the algorithm and work with it on a higher level. However, since MIT App Inventor is more simple, I needed to write it myself. For this, I needed to research deeply into machine learning and the methods to implement it. Through this lower level understanding of it, I implemented the algorithm. These two challenges created a lot of problems, but I ended up finding the solution.
Accomplishments that I'm proud of
As stated above, I wrote the machine learning algorithm myself. I am very proud that I could take such a seemingly complicated program, written in different programming languages, and simplify it down to work in my app. This part, being the main focus of my app was what had worried me the most. I was afraid that I would not be able to write a machine learning algorithm in a simple language, but after spending a lot of time researching and even more actually writing the code, I am extremely proud of my progress and the success of the algorithm in the app.
What I learned
Through the experience of coding hourLY, I learned that anything is possible. I started this project with high hopes, knowing that they might not be met, however ended up meeting and exceeding them. This was only done through hard work, perseverance, and most importantly, dedication to what I was doing. When making the app, I realized that no one may end up using the app, but it didn't matter. I was going to use it and as long as I had at least one user, it was worth it. This completely changed my outlook on software and app development. I used to believe that there was no purpose in making an app unless many people would use it, but now I realized that its okay if no one uses it because I made it for myself and that is all that matters.
What's next for hourLY
In the future, I plan to keep working on hourLY, adding more features and automation. One specific plan I have for the future is to have the option of inputting your grade in a class. The program would also take into consideration the grade the student has in the class and would make changes to the algorithm to improve the student's GPA. I was also thinking of letting the student add breaks in between classes to let their mind cool down. This will also help improve the effectiveness of studying and the machine learning algorithm could also make changes to this based off the amount of time the student spent studying. Through these additions, I plan to keep on improving hourLY to make it the best resource for academic planning.