Inspiration
Japan has an estimate of 4.5 million dementia patients in 2025, and this number is projected to rise. Therefore, me and my team decided to create a messaging software that would connect those with dementia more easily to family, friends and caregivers. Notably, two of the three members of the project (including the lead programmer) have family with dementia, and understand the struggles of it, motivating us to complete the project to the best of our ability.
What it does
A website with deliberately simple UI that is easy to use for the elderly. Allows users to add contacts via a email that they sign up with. Once added, it works similarly to other large messaging companies, with unread notifications and texting features (including group chat) Has an AI summariser (using deepseek AI) that will summarise recent texts to allow those with memory challenges to seamlessly keep up with the conversation.
How we built it
Using a full-stack approach: Backend: Node.js with Express, SQLite (via better-sqlite3) for persistent storage, and Socket.IO for real-time communication. We also integrated authentication with bcryptjs (for compatibility across OS) and uuid.
Frontend: Plain JavaScript (app.js) to manage navigation, handle API calls, and update the UI dynamically. We used Socket.IO on the client to receive live updates like new messages or contact changes.
UI: A clean, responsive interface styled with CSS (styles.css) and rendered through a single-page HTML file (index.html).
AI Feature: We added an AI-powered conversation summarizer using the OpenRouter API, making it easier for users (especially those with memory challenges) to recall recent discussions.
The choice to run a simple, pure JS, CSS and HTML based website was intentionally made to make it easier to run and audit, useful for old devices and/or poor environments.
Challenges we ran into
To prevent constant errors while changing schemas and lists, we designed a database migration system to safely update schemas while keeping existing data.
A challenge arose when handling real-time communication without duplicating or missing messages, especially in groups, which we solved by ensuring that the database was always "referred back to" and that Socket.IO broadcasting was used to update the entire message list (to prevent gaps if clients disconnect, etc)
Integrating the AI summary API while keeping response times reasonable and handling potential failures gracefully. This was majorly solved by ensuring no blank summaries were sent back
Accomplishments that we're proud of
Successfully building a real-time messaging system with both one-on-one and group chats.
Adding AI-generated summaries of chats to support people with memory impairments.
Making the app resilient to schema changes with a custom migration helper.
Achieving a working end-to-end product
What we learned
The importance of data modeling for users, contacts, messages, and groups.
Practical experience with UX design for accessibility, especially keeping the interface simple for people who may struggle with clutter.
How to integrate external AI services into an application, including handling errors and API limitations.
What's next for Dementia Chat
The natural next step for Dementia Chat would be to make it an app that is running 24/7 on servers, so that it does not have to be run locally on the tester's/developer's devices, with a ngrok free link to the website.
IMPORTANT NOTE (For judges, mainly):
There will be two links added, one for the website, one for the drop box (with the videos of the explantion). For the website to work, it must be run locally from a device beforehand (however, once done so, the link to the website can be used to access from any network). For this reason, I request that the judges please set up the website on their devices with the instructions in the setup instruction files in the project file. If any problems arise, please contact us in the emails provided in the same files. (Due to clashes with OS firewalls/antiviruses, please note that there may be a need to rebuild some files and/or reinstall a dependency locally.)
If any participants are interested in seeing the code/project, please message me and I will share with you the code (provided that the deadline has passed), and/or run the website on my device for you to check out!
Log in or sign up for Devpost to join the conversation.