Problem Statement
People with memory ailments have a lot of challenges with interacting with technology. Perhaps the largest issue : remembering passwords. Even without memory ailments, most people cannot remember their passwords unless they use a single password on every website. Uppercase letters, lowercase letters, symbols, number, all in random patterns, and a unique one for each site - this is an immense amount of memorization needed. While password managers exist, they take a lot of effort to keep organized and don't work well unless you own products solely across a single ecosystem, such as the Apple ecosystem. Multiple reputable research papers have proven that such an image-based authentication system would be easier for all users.
Where We Come In
We developed The Recollector, a tool for those with memory issues to better remember key parts of their lives. We implemented an image-based authentication system and an AI powered chatbot. For authentication, users can upload a number of images to their liking to be used for authentication. During multiple rounds, users will have to pick their image among various other random images. Remembering important images of one's life is significantly easier than remembering an arbitrary set of characters.
Our motivation for the memory-jogging chatbot was that whenever you prompt a LLM, it often initially forgets earlier material, especially when conversations are long. We log important details onto a file, that gets sent to Gemini on every call, ensuring that we eliminate as much of the dreaded LLM Hallucinations. It would be especially horrible if a memory-aid tool hallucinated to its users.
How We Built Our Project
We built our application in Flask, a popular Python backend framework. We mainly utilized bootstrap for our styling, but some transitional elements were simpler to implement with standard css.
One core aspect of our project was the images component. We stored all of our images for authentication within a folder, stratified by user. This is how most of the components, except the chatbot, interacted without our app. We took special consideration to our design structure to account for one specifically important idea - should other users be served my images in the authentication process. We ended up sticking with this as the idea is an interesting idea - as more users use the app and security becomes a larger issue, we automatically scale our security.
Another core aspect of our project was the storage of user message. We would store the prompts they sent to Gemini in order to compile a data file(json), with the most essential user information in one file, a file that would be sent along with every query to Gemini such that the user can be assisted with recalling things they may have forgotten. Otherwise, such a feature could not be implemented.
We also had a script that could be run from the terminal to add Gemini-created images into our image bank. This helped us seed our program with some sample images.
Challenges We Faced
Due to all of our team knowing different tech stacks, it became a challenge for many team members to work in with Flask. Through learning by building, we all learned a lot in the process and quickly caught up. Furthermore, not being entirely familiar with the Gemini API caused us to spend a lot of time reading the documentation to implement the API.
Future Considerations
We would need a method to detect very similar images, spammed in bulk, used to mess with our algorithm, when turning this into a real product from a demo
We do acknowledge our security shortcomings in some regards, when a user is presented with to pick 1 of 10 options, 5 times, it is orders of magnitude less the variation of a 6 character alphanumeric string. We plan to try a new system: present a user with 100 images and they pick their 5 from that set, provididing over 1,000 more variation, increasing security.
To Conclude
For users who forget the past, The Recollector brings it back both safely and truthfully.
Log in or sign up for Devpost to join the conversation.