Skip to content

balmukund18/note-taking-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Note-Taking App

A full-stack note-taking application with secure authentication and note management.

🚀 Features

  • 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

🛠️ Tech Stack

Frontend: React, TypeScript, Vite, Tailwind CSS
Backend: Node.js, Express, TypeScript, MongoDB
Auth: JWT, Google OAuth 2.0, Nodemailer
Deployment: Vercel

🔧 Installation

1. Clone Repository

git clone https://github.com/balmukund18/note-taking-app.git
cd note-taking-app

2. Backend Setup

cd backend
npm install

Create .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:5173

3. Frontend Setup

cd ../frontend
npm install

Create .env file:

VITE_API_URL=http://localhost:3001/api
VITE_GOOGLE_CLIENT_ID=your-google-client-id

4. Run Application

# Terminal 1 - Backend
cd backend && npm run dev

# Terminal 2 - Frontend
cd frontend && npm run dev

📋 API Endpoints

Authentication

  • POST /api/auth/signup - Register with email
  • POST /api/auth/signin - Login with email
  • POST /api/auth/google-signup - Register with Google
  • POST /api/auth/google-login - Login with Google
  • POST /api/auth/verify-otp - Verify OTP
  • POST /api/auth/resend-otp - Resend OTP
  • POST /api/auth/logout - Logout

Notes

  • GET /api/notes - Get all notes
  • POST /api/notes - Create note
  • PUT /api/notes/:id - Update note
  • DELETE /api/notes/:id - Delete note

🚀 Deployment

Vercel (Recommended)

  1. Push code to GitHub
  2. Import project to Vercel
  3. Deploy backend and frontend separately
  4. Add environment variables in Vercel dashboard

Deploy Backend Deploy Frontend

📄 License

MIT License

About

A full-stack note-taking application built with React, TypeScript, Node.js, and MongoDB. Features secure authentication with Google OAuth, OTP verification, and a responsive design with custom branding.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages