We were inspired by the need for self-care in computer science, since often (such as during the hackathon), students will spend hours on end just working on their projects and not taking enough breaks or time to rest. We noticed how often students will dig themselves into a rut in their assignments by not having a fresh mind, and spending hours frustrated with code that they could have easily completed if they had taken time away from the problem.
What it does
It is a plugin for IntelliJ that sets reminders for the student after certain amounts of time, so they are made more aware of the amount of time they are spending on the project and not overexerting themselves. You can set your own time limit based on what you know about your coding stamina. It can also produce health tips for when you open the Self-Care tab on the taskbar and select tips. You can also record your state of mind throughout different points in the project to gauge your emotional progression through the project and schedule breaks more or less frequently based on your level of frustration.
How we built it
We used IntelliJ to build the plugin and used Gradle through IntelliJ. We imported the IntelliJ openapi libraries, as well as using swing for different timers and drawing capabilities.
Challenges we ran into
We started out not knowing how to create a plugin, so our greatest challenge was to learn as we go with our limited time. We ran into many runtime errors and had to overcome them through lots of debugging.
Accomplishments that we're proud of
We are proud of our ability to have learned how to create a plugin, even with the minimal amount of documentation available.
What we learned
We learned a lot about building a plugin, since none of us had had any experience in building a plugin, in using gradle or using the openapi libraries, so we spent a lot of time researching the different ways to accomplish our ideas.
What's next for Karen the Self-Care IntelliJ Plugin
We want to make our plugin more interactive, such as making the emotional state tracking a time-based feature so that students will be reminded to track their status. We also want to make more well defined and interesting tips for the tip section based on student customization, basing it on issues that they may have trouble with.