ThinkYr is a full-stack note-taking web application designed to provide a smooth, fast, and secure experience for personal productivity. Built with the MERN stack and enhanced by real-world production tools like Redis-based rate limiting and RESTful APIs, it delivers a minimal yet robust platform for managing notes efficiently.
This project is optimized for showcasing backend API design, frontend UI/UX using modern frameworks, rate-limiting, REST principles, and MongoDB-powered data persistence — making it ideal for internship applications at FAANG and top product companies.
- 📝 Add, update, delete personal notes
- 👤 User-based note segregation via MongoDB schemas
- 🚦 Rate-limiting using Upstash Redis (abuse prevention)
- 📃 Clean UI with DaisyUI & TailwindCSS
- 🚀 Optimized API design with modular routes and middleware
- 📥 Responsive and mobile-friendly design
Create a .env file in the root directory with the following:
MONGODB_URI=your_mongo_uri
PORT=5001
UPSTASH_REDIS_REST_URL=your_upstash_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_token
NODE_ENV=productiongit clone https://github.com/CodeCenturian/ThinkYr.git
cd ThinkYr
npm install- Add your
.envvalues - Start the backend:
npm run devApp will be running on: http://localhost:5001
📦server
┣ 📂controllers // logic for note CRUD
┣ 📂models // Mongoose schemas
┣ 📂routes // Express routes
┣ 📂middleware // rate limiter
┣ 📄server.js // entry point
┗ 📄.env
GET /api/notes // Get all notes for a user
POST /api/notes // Create a new note
PUT /api/notes/:id // Update note by ID
DELETE /api/notes/:id // Delete note by ID⚙️ Each note is associated with a user — logic handled server-side.
This project demonstrates:
- ✅ Scalable CRUD operations
- ✅ RESTful API design
- ✅ Rate-limiting using Redis (Upstash)
- ✅ Component-based React UI
- ✅ Mobile responsiveness
- ✅ .env configuration, modular code
Ideal for backend-focused roles and full-stack internship portfolios.
- 📧 Email: [email protected]
"ThinkYr – Because your thoughts deserve structure." ✨