A full-stack note-taking application with authentication (email + OTP + Google) and JWT-protected API.
- Signup/Login with Email + OTP or Google
- JWT-based authentication
- Create & delete notes
- Responsive design with light/dark theme
- Production-ready Docker setup
Layer | Tech |
---|---|
Frontend | React (TypeScript) + Vite + TailwindCSS + ShadCN |
Backend | Node.js (TypeScript) + Express |
Database | PostgreSQL / MongoDB / MySQL |
Auth | Google OAuth & Email OTP |
.
├── client/ # Frontend (React app)
├── src/ # Backend (Node.js + Express)
├── docker-compose.yaml
├── Dockerfile / etc.
└── Makefile
- Node.js ≥ 18
- pnpm ≥ 8
- Docker & Docker Compose
# Frontend
cd client && pnpm install
# Backend
cd .. && pnpm install
cd client
pnpm dev
pnpm dev
cd client
pnpm build
pnpm build
# Frontend
docker build -t note-app-frontend client
# Backend
docker build -t note-app-backend .
docker run -p 80:80 note-app-frontend
docker run -p 3000:3000 note-app-backend
For full-stack local setup:
docker-compose up -d --build
Stop and clean up:
docker-compose down -v
You can also use the provided Makefile
for common tasks:
Task | Command |
---|---|
Install deps (both) | make install |
Dev frontend | make dev-frontend |
Dev backend | make dev-backend |
Lint frontend | make lint-frontend |
Lint backend | make lint-backend |
Format frontend | make format-frontend |
Format backend | make format-backend |
Build frontend | make build-frontend |
Build backend | make build-backend |
Docker build frontend | make docker-build-frontend |
Docker build backend | make docker-build-backend |
Docker bake | make docker-bake |
Docker bake (no cache) | make docker-bake-clean |
Compose up | make compose-up |
Compose down | make compose-down |
Clean node_modules & dist | make clean |
- The frontend React app lives in the
client/
folder. - Both frontend & backend use
pnpm
and have their ownnode_modules
. - Recommended to use Docker Compose or Makefile for local dev & production builds.