Inspiration

We wanted to preserve the everyday. Those small, meaningful moments often get lost over time. Our goal was to give users a way to capture, organize, and revisit their memories anytime.

What it does

Memory Mosaic allows users to store photos and text memories in a secure, searchable archive. Users can sort, filter, and explore their memories by date, type, or user, creating a personal and organized timeline of their life.

How we built it

We built a Node.js backend using Express to handle API requests and PostgreSQL to store both text and image data. The frontend is built with React, providing a dynamic interface for users to view, sort, and interact with their memories. We pre-populated the database to make testing and demos straightforward.

Challenges we ran into

We faced challenges integrating PostgreSQL with a React frontend via an API. Handling image data efficiently using BYTEA and base64 encoding was also difficult. Coordinating table creation, data seeding, and dynamic queries to make sorting and filtering work smoothly took extra effort. Working under hackathon time constraints to connect the backend, frontend, and database reliably was another challenge.

Accomplishments that we're proud of

We successfully created a full-stack system that stores and retrieves both text and image memories. We implemented dynamic filtering, sorting, and user-based queries in the backend. We built a working demo that is ready for a hackathon presentation. We coordinated as a team to set up version control, database seeding, and API endpoints quickly.

What we learned

We learned how to structure a full-stack application with React, Node.js, and PostgreSQL. We learned techniques for handling binary image data in a database and serving it to a frontend. We learned the importance of API design, modular queries, and database seeding for collaborative development. We also learned how to prioritize features and build a working demo under tight deadlines.

What's next for Memory Mosaic

We plan to implement authentication and user accounts for secure, personalized experiences. We want to add more advanced filtering, tagging, and search features. We also want to improve the user interface for easier navigation and richer visualization of memories. Finally, we plan to explore deploying the full stack to the cloud for a live, shareable demo.

Share this project:

Updates