A full-stack note-taking application with secure authentication and note management.
- Authentication: Email/OTP verification + Google OAuth
- Notes: Create, read, update, delete notes
- Security: JWT with HTTP-only cookies, rate limiting
- Responsive: Works on desktop, tablet, mobile
Frontend: React, TypeScript, Vite, Tailwind CSS
Backend: Node.js, Express, TypeScript, MongoDB
Auth: JWT, Google OAuth 2.0, Nodemailer
Deployment: Vercel
git clone https://github.com/balmukund18/note-taking-app.git
cd note-taking-appcd backend
npm installCreate .env file:
PORT=3001
MONGODB_URI=your-mongodb-connection-string
JWT_SECRET=your-jwt-secret-32-chars-min
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
EMAIL_SERVICE=gmail
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-gmail-app-password
FRONTEND_URL=http://localhost:5173cd ../frontend
npm installCreate .env file:
VITE_API_URL=http://localhost:3001/api
VITE_GOOGLE_CLIENT_ID=your-google-client-id# Terminal 1 - Backend
cd backend && npm run dev
# Terminal 2 - Frontend
cd frontend && npm run dev- Frontend: http://localhost:5173
- Backend: http://localhost:3001
POST /api/auth/signup- Register with emailPOST /api/auth/signin- Login with emailPOST /api/auth/google-signup- Register with GooglePOST /api/auth/google-login- Login with GooglePOST /api/auth/verify-otp- Verify OTPPOST /api/auth/resend-otp- Resend OTPPOST /api/auth/logout- Logout
GET /api/notes- Get all notesPOST /api/notes- Create notePUT /api/notes/:id- Update noteDELETE /api/notes/:id- Delete note
- Push code to GitHub
- Import project to Vercel
- Deploy backend and frontend separately
- Add environment variables in Vercel dashboard
MIT License