A full-stack Todo List application built with TypeScript, NestJS, Prisma, PostgreSQL, and Vite (React).
Features user authentication with JWT, task management, and secure API integration.
- Frontend: Vite + React + TailwindCSS
- Backend: NestJS (TypeScript)
- Database: PostgreSQL with Prisma ORM
- Auth: JWT (JSON Web Tokens)
Clone the repository and install dependencies:
git clone https://github.com/arcdevoff/todolist.git
cd todolistInstall dependencies for backend and frontend:
# Backend
cd server
npm install
# Frontend
cd client
npm installCreate .env files:
DATABASE_URL="postgresql://USER:PASSWORD@localhost:5432/todolist"
PORT=3000
NODE_ENV=development
CLIENT_URL=http://localhost:5173
ACCESS_TOKEN_SECRET=replace_this_access_secret
REFRESH_TOKEN_SECRET=replace_this_refresh_secret
ACCESS_TOKEN_EXPIRES_IN=15m
REFRESH_TOKEN_EXPIRES_IN=7dVITE_API_URL="http://localhost:3000"
VITE_PORT=5173- Make sure PostgreSQL is running.
- Push schema to database:
cd server npx prisma migrate dev --name init - Generate Prisma client:
npx prisma generate
cd server
# development
npm run start:dev
# production
npm run build
npm run start:prodcd client
# development
npm run dev
# production build
npm run build
npm run preview- Frontend:
http://localhost:5173 - Backend API:
http://localhost:3000
npm run start:dev→ run NestJS in dev modenpm run start:prod→ run NestJS in productionnpx prisma studio→ open Prisma Studio (DB UI)
npm run dev→ run Vite dev servernpm run build→ build for productionnpm run preview→ preview production build
- ✅ JWT Authentication (register/login)
- ✅ User-based tasks
- ✅ Secure API with NestJS guards
- ✅ Database schema with Prisma
- ✅ Modern frontend with React + TailwindCSS
