Home

Objective

Create a simple, easy-to-use reminders/to-do app so you can take care of a short grocery list to all the deadlines for your classes, this app will help you stay on top of your responsibilities!

APIs

  • Firebase ML Kit Vision (for OCR )

    • This API recognizes text from images. We used a button which would take us to the phone's photo gallery so we can choose an image. This image is then passed into the Firebase tools to read blocks of text, which we can then parse for the "Due" keyword signifying there is an event due soon.

  • Notifications API

    • This API sends notifications at the moment it is called. We used CalendarView and TimePicker objects to allow the user to select a date and time for the notification. This was then compared to the current date and time, polling every minute and sending out a notification if they matched.

Hardware

  • Camera External Storage

    • We requested access to the camera and external storage so we could reach into the phone's photo gallery to retrieve an image for the Firebase API.

  • Ambient Light Sensor

    • This doesn't really contribute to the main functionality of our app but we used the ambient light sensor to simulate an aesthetic "dark mode". It is normally used to ease strain on the eye when used at night or in dark places. We inverted the shades of the screen to colors normally associated with this mode.

Challenges

  • adding a string set to shared preferences took a lengthy amount of time, later thought revealed using cloud-based storage or some API to be a better solution

    • it was completely functional one night and when it was restarted the next morning, everythng crashed for some inexplicable reason

  • wanted to be able to add multiple events from a screenshot

    • would require moving camera button and all its functionality to main screen to loop through events and move back and forth between next activity to achieve this

    • as mentioned above, since the app crashed altogether unexpectedly, steered clear of changing things too much last minute in fear of the worst

    • should have started with camera button on the main activity to begin with so it would be easy to implement

  • tried to formulate a way of "checking events off"

    • SpannableString to strikethrough wasn't compatible with ListView

    • changing color of event to red didn't work with constant color correcting according to light intensity of ambient light sensor

    • scratched whole idea thinking people can delete event when complete rather than checking off

  • parsing image using Firebase API proved a little more complicated than expected because some blocks included multiple chunks of text rather than line by line, so had to be split by newline character

150demo.mp4

Demo Video

Don't sleep on our demo video đź‘€