Inspiration
Pet Care was inspired in my two dogs and all the paper reminders I keep on my fridge for their treatments and appointments, the several times a year I have to check their rabies vaccine status, and the creative names I have to add to their providers when I save them on my phone contacts to help me find them when I need them.
What it does
The proof of concept presented in this hackathon is just one functionality of a larger app. It manages individual flea treatments for multiple pets. Once a pet is registered, the user is offered to register a first treatment. For each one, the medicine the date of treatment, name, dose, place of purchase (optional), and picture (optional) are recorded. It is also posible to record a date for the next treatment. If there is a next treatment, the app will trigger a notification four days before the deadline in case preparations are needed. The day of the treatment, a notification will be sent at around 8 AM, the user can register the treatment then or postpone it once until 4 PM. If no treatment is recorded by the next day, it will be marked as overdue. There is a demo mode that showcase the feature work for a demo pet in which the time is accelerated at the rate of one minute = one day.
How we built it
We built Pet Care as a native Android application using Kotlin, with AI-assisted development through Codex. We followed a specification-driven approach, starting with the project scope and requirements before implementing the application. Development focused on recording flea treatments, calculating upcoming doses, and managing reminders, including overdue treatments. We also implemented an accelerated demo mode, where one minute represents one day, allowing us to demonstrate the treatment lifecycle without waiting weeks between doses. The project was both a practical pet-care solution and an opportunity to learn Android development, Kotlin, and AI-assisted software engineering.
Challenges we ran into
One challenge was that Android notifications can use exact or inexact alarms. The first one requires more permissions than the second and exact time notification is still not guaranteed. In a chat with Codex we decided that for this POC inexact was enough, but we left it documented for other types of medication. In our tests, the postponed reminder arrived six minutes later once. Another issue was preserving accurate treatment history. In an earlier implementation, an example exposed an important design issue: confirming a treatment must create a new administration record with the actual medication and selected administration date, while preserving earlier records and cancelling pending reminders.
Accomplishments that we're proud of
Even when I am a Java developer with almost no experience in Android or Kotlin, with Codex help and the skills provided by the hackathon, I was able to build a complete feature of a future app. It looks good, and it works as I intended. More important, I think I can take those skills and continue building the rest of the app.
What we learned
I learned a new form of coding with an AI assistance. I have been doing that for a while in my job, but I usually tell the AI what to do, ask it to find a bug, or ask for a security audit. What I learned is to approach the AI with a general idea of what I want to build and work together towards a product definition, a list of specifications, a list of tasks, and the final product.
What's next for Pet Care
The first feature we need to add, which I forgot in the original specification, is to remove a pet. After that, we will expand this POC to handle more treatment types per pet.
Built With
- android-studio
- jetpack-compose
- kotlin
- material-3
Log in or sign up for Devpost to join the conversation.