Project Info
This project did not submit a demo video on Devpost.
Inspiration
While a member of my team was conducting research at UCSF, he noticed a family partaking in a beautiful, albeit archaic, practice. They gave their grandfather access to a google doc, where each family member would write down the memories that they have with him. Nearly every day, the grandfather would scroll through the doc and look at the memories that him and his family wanted him to remember.
What it does
Much like the Google Doc does, our site stores memories inputted by either the main account holder themself, or other people who have access to the account, perhaps through a shared family email. From there, the memories show up on the users feed and are tagged with the emotion they indicate. Someone with Alzheimers can easily search through their memories to find what they are looking for. In addition, our Chatbot feature trained on their memories also allows users to easily talk to the app directly, asking what they are looking for.
How we built it
Next.js, React, Node.js, Tailwind, etc.
Challenges we ran into
It was difficult implementing our chatbot in a way where it is automatically update with data that our user inputs into the site. Moreover, we were working with React for the first time and faced many challenges trying to build out and integrate the different technologies into our website including setting up MongoDB, Flask, and different APIs.
Accomplishments we're proud of
Getting this done! Our site is polished and carries out our desired functions well!
What we learned
As beginners, we were introduced to full-stack development!
What's next
We'd like to introduce Scrapbook to medical professionals at UCSF and see their thoughts on it.
Analysis
View
Metric
- 13
- 3
- 3
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- MongoDBIn code
- Next.jsIn code
- OpenAIIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Node.jsClaimed
10 of 11 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
36 KB
Source files
30
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
garvcodes/Scrapbook-Alzheimers
54 files · 17.3 MB · @ f7702ad
Structure
Interface
14 files · 26%Screens, components and styles rendered to the user.
+1 moreAPI & routing
8 files · 15%Request entry points: routes, handlers and controllers.
Application logic
3 files · 6%Domain rules, services and shared utilities.
Data & schema
2 files · 4%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript76%
- CSS14%
- Python7%
- TypeScript1%
- Markdown1%
- HTML1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 20- axios
- bcrypt
- chatgpt
- lamejs
- mongodb
- mongoose
- next
- next-auth
- openai
- react
- react-dom
- +9 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Google OAuth account login (shared family access)Verified
Users sign in via a Google account, allowing the main account holder or family members with access to add memories
Claimed on Devposthigh confidenceapp/api/auth/[...nextauth]/route.js:8— NextAuth configured with GoogleProvider; signIn callback creates a User document in MongoDB on first login
Memory database for Alzheimer's families with active recall focusVerified
Scrapbook is a memory database for families affected by Alzheimer's, intended to support active recall
Claimed on readmehigh confidenceapp/page.jsx:1— Homepage copy and Feed component directly implement a browsable/searchable memory database aimed at Alzheimer's usersmodels/prompt.js:1— Memory data model underlies the recall/database functionality
Memory feed displayVerified
Memories show up on the user's feed
Claimed on Devposthigh confidencecomponents/Feed.jsx:30— Feed component fetches all prompts from /api/prompt and renders them via PromptCardList/PromptCardapp/api/prompt/route.js:1— GET handler returns all Prompt documents populated with creator
Memory storage (create/save memories with tags)Verified
The site stores memories inputted by the user, saved to a database
Claimed on Devposthigh confidenceapp/api/prompt/new/route.js:1— POST handler creates and saves a new Prompt (memory) document with creator, prompt text, and tag to MongoDBmodels/prompt.js:3— Mongoose schema defines memory fields: creator, prompt, tagapp/create-prompt/page.jsx:1— Create Memory form posts to /api/prompt/new
MongoDB backend for memory storageVerified
Built with tools including MongoDB (mentioned in challenges)
Claimed on Devposthigh confidenceutils/database.js:1— connectToDB uses mongoose.connect, used by the prompt and auth API routes
next-auth integrationVerified
Built with next-auth (listed in Built With)
Claimed on Devposthigh confidenceapp/api/auth/[...nextauth]/route.js:1— next-auth is configured and used for session handling across components (Nav.jsx, Feed.jsx use useSession)
Search through memoriesVerified
Someone with Alzheimer's can easily search through their memories to find what they are looking for
Claimed on Devposthigh confidencecomponents/Feed.jsx:44— filterPrompts uses a regex over username, tag, and prompt text; wired to a debounced search input and tag-click handler
Chatbot trained on user's own memoriesCode-supported
A chatbot feature trained on the user's memories allows users to talk to the app directly, asking what they are looking for, and automatically updates with data the user inputs
Claimed on Devpostlow confidenceapp/chatbot/page.html:9— The in-app 'Chat with Yourself' link embeds a third-party Chatbase iframe, not a custom chatbot querying the user's live MongoDB memoriesapp/Functions/GPT/chatgpt.py:1— A separate standalone Flask/LangChain script builds a retrieval QA chain over static local text/PDF files in data/ (not the live per-user MongoDB memory feed, and not called from the Next.js app)
Flask API integrationCode-supported
Challenges mention setting up Flask as part of the stack
Claimed on Devpostlow confidenceapp/Functions/GPT/chatgpt.py:18— A standalone Flask app with a /chat route exists, but it is not called from or integrated with the Next.js frontend (no fetch to a Flask endpoint found in app/ or components/)
minds-db integrationCode-supported
Built with minds-db (listed in Built With)
Claimed on Devpostlow confidenceapp/mindsdb/mindsdb.js:1— Script uses mindsdb-js-sdk to connect to MindsDB and query a mirrored MongoDB, including hardcoded credentials, but is not imported or invoked from any API route or page in the app
Memories tagged with emotionClaimed only
Memories are tagged with the emotion they indicate
Claimed on Devposthigh confidenceOCR of handwritten/scanned memoriesClaimed only
Implied by presence of OCR functionality in codebase (not explicitly in Devpost text, but relevant to 'stores memories' claim)
Claimed on readmemedium confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.