Inspiration
When brainstorming ideas for our hackathon project, we all wanted to make something that would be beneficial to students based on our own experiences and struggles. We all related to the shared experience of procrastinating on projects and being forgetful of studying for upcoming tests, quizzes, and even exams. With this in mind, we wanted to redesign the current calendar system and make it useful for students, and more specifically, high school students.
What it does
When the user enters a new event, it will first ask for the duration of the event and then the event type. The event-type options include tests, quizzes, assignments, exams, and other. If the user chooses the test option, the calendar will automatically prepare study sessions a week in advance, allowing the student to be well-prepared for the assessment. If the user chooses the quiz option, the calendar will prepare study sessions three days in advance. If the user chooses the assignment option, the preparation sessions will be two weeks in advance, and finally. If the user chooses the exam option, the calendar will prepare study sessions for a month in advance, and finally, the "other" option will add a one-day event.
How we built it
Using Java and its built-in graphics library, Swing, we created the calendar interface and all of its algorithms.
- Started with UI design by making a mockup of what we wanted it to look like
- Made it display for one week
- Used hashmaps to access events more efficiently
- Expanded it for multiple weeks
- Made it automatically schedule other sessions
Challenges we ran into
When we initially planned out the UI for the calendar, we intended to have panels, buttons, and monthly/daily viewing options. As we continued to code and work on the interface, we ran into difficulties with the JPanel and JButton commands that we could not figure out, so ended up making everything using a canvas. Instead of buttons, we used keybinds. It took us quite a lot of time to finish the UI since it was the first time working with Swing for 3/4 of our team members, but eventually, we were able to accomplish a design that was similar to our original vision. There were other features we wanted to add; however, did not because of our limited time. For example, the calendar can only plan events from 8am-5pm, and editing/removing events hasn’t been implemented. For all of our team members, this was our very first hackathon, and we did not plan out individual tasks or what to work on as a group. This caused us to start off slow and unorganized, but we eventually figured out our roles and were able to finish the project!
Accomplishments that we're proud of
Since this was our first hackathon, we did not expect to do very well. However, we managed to come up with many creative implementations of features, like switching between different weeks and automatically scheduling study sessions. We are feel very proud putting forward a working application that can really help with an issue that many students have!
What we learned
Over the last 3 days, we learned how to use many new tools and services that we didn’t have experience before. For example, we learned how to cooperate on the same project in Visual Studio Code and Github. In school, we used a custom simplified version of the Java Swing library, so being able to use the full Swing library allowed us to understand how different graphical components interacted with each other.
What's next for A+ Agenda
While A+ Agenda is a working application that does what it is intended, there are many features we can implement to improve the user experience. Being able to save events to the hard drive allows the user to close the app without losing any planned events that they added. Different views like a daily or monthly view gives the user more information about their plans and lets them easily plan further in advance. Giving the user the option of recurring events can help them input school and extracurricular events much faster. Finally, letting the user customize the look of the app to their liking can really enhance the feel of using the app!

Log in or sign up for Devpost to join the conversation.