MemoryVault is a full-stack MERN app for storing and revisiting memories using a calendar-first experience.
Core capabilities:
- Calendar-based memory browsing
- Upload photos/videos with notes and tags
- Favorites and activity feed
- Dashboard stats and timeline chart
- Secure auth via Clerk
- Frontend: React + TypeScript + Vite + Tailwind
- Backend: Node.js + Express + TypeScript + MongoDB (Mongoose)
- Media: Cloudinary
- Auth: Clerk
- Interactive calendar UI
- Click on dates to fetch memories
- Organized timeline-based experience
- Upload memories with:
- Title
- Description (memory text)
- Tags
- Photos & Videos
- Media stored securely in Cloudinary
- Search memories using tags
- Retrieve memories by specific dates
- Efficient loading of memories
- Optimized for scalability and performance
-
Monthly insights:
- Total memories
- Number of photos
- Number of videos
-
Bar chart visualization of memory activity
- Add/remove memories to favorites
- Quick access to important moments
- Get random memory (nostalgic recall)
- Activity tracking (history of actions)
- Secure authentication powered by Clerk
ReverseCalender/
├── client/ # React app (TypeScript)
├── server/ # Express backend
│ └── README.md # Server documentation
└── README.md # Main project documentationServer documentation is maintained in:
server/README.mdserver/TYPESCRIPT_MIGRATION.md
git clone https://github.com/Rashim-Sunar/MemoryVault.git
cd MemoryVault
cd client
npm installcd ../server
npm installcd server
npm run devcd client
npm run devServer .env:
MONGO_URI=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
CLERK_SECRET_KEY=
CLIENT_URL=Client .env:
VITE_CLERK_PUBLISHABLE_KEY=- Memory sharing with other users
- AI-based tagging and recommendations
- Location-based memory mapping
- Progressive Web App (PWA) support
- Offline memory access
- Fork the repository
- Create a branch (feature/new-feature)
- Commit your changes
- Open a pull request
Rashim Sunar
MERN Stack Developer