A cloud-deployed, service-separated task management platform built using modern full-stack technologies.
TUDU demonstrates modular backend architecture, secure authentication patterns, and production-style deployment across multiple cloud platforms.
Demo: Live Demo Link
TUDU is not just a CRUD to-do app.
It is a service-separated system designed with:
- Secure JWT-based authentication
- RESTful API architecture
- Cloud deployment strategy
- Backend security best practices
- Modular and extensible design
The project simulates real-world SaaS architecture by separating authentication and business logic services.
User β Auth Service β JWT β Task Frontend β Backend API β PostgreSQL
π Authentication Service (Next.js)
π₯ Task Frontend (Next.js)
β Backend API (Node.js + Express)
π Database (Neon PostgreSQL)
| Service | Platform |
|---|---|
| Authentication Service | Vercel |
| Task Frontend | Vercel |
| Backend API | Render |
| Database | Neon (Serverless PostgreSQL) |
Each service is independently deployed with environment-based configuration.
- User registers or logs in
- Password is securely hashed using bcrypt
- JWT token is generated upon successful authentication
- Protected routes validate JWT using middleware
- Backend verifies token signature before granting access
Authentication is stateless and scalable.
- User Registration
- Secure Login
- Password Hashing (bcrypt)
- JWT-based Authorization
- Protected API Routes
- Create tasks
- Update tasks
- Delete tasks
- Drag-and-drop task reordering
- Modular UI structure
- React Query for server-state caching
- Optimized API requests
- Clean component architecture
- Helmet for secure HTTP headers
- Express Rate Limiting
- Controlled CORS configuration
- Environment-based secrets management
- Next.js
- React
- React Query
- Tailwind CSS
- dnd-kit
- Node.js
- Express
- Prisma ORM
- PostgreSQL
- Zod Validation
- JSON Web Tokens
- Helmet
- Express Rate Limit
- Vercel
- Render
- Neon PostgreSQL
POST /api/auth/register
Request Body:
{ "name": "username",
"email": "user@example.com",
"password": "password123"
}Response:
{
"message": "User registered successfully",
"userId": "uuid"
}POST /api/auth/login
Request Body:
{
"email": "user@example.com",
"password": "password123"
}Response:
{
"token": "jwt_token_here"
}All task endpoints require Authorization header.
Authorization Header:
Authorization: Bearer <jwt_token>
GET /api/tasks
Response:
[
{
"id": "task_id",
"title": "Complete project",
"completed": false
}
]POST /api/tasks
Request Body:
{
"title": "Complete project",
"description": "Finish backend integration"
}Response:
{
"id": "task_id",
"title": "Complete project",
"completed": false
}PUT /api/tasks/:id
Request Body:
{
"title": "Updated title",
"completed": true
}DELETE /api/tasks/:id
Response:
{
"message": "Task deleted successfully"
}userAuth/
|-- prisma
/src
βββ app/
βββ action/
βββ components/
βββ lib/
βββ types/
task-frontend/src/
βββ components/
βββ hooks/
βββ lib/
βββ app/
βββ types/
βββ validation/
βββ stores/
backend/
βββ prisma/
βββ src/
β βββ routes/
β βββ controllers/
β βββ middleware/
β βββ services/
β βββ config/
β βββ utils/
β βββ types/
NODE_ENV
PORT
DATABASE_URL
JWT_SECRET=<JWT_SECRET_KEY>
ALLOWED_MICROSERVICES
PUBLIC_KEY=<your_rsa_public_key>
NEXT_PUBLIC_AUTH_API_URL
NEXT_PUBLIC_APP_API_URL
AUTH_SERVICE_URL= <auth service url here>
PUBLIC_KEY = <public key here>
NEXT_PUBLIC_AUTH_SERVICE_URL= <auth service url here>
NEXT_PUBLIC_APP_API_URL= <app api url here>
NEXT_PUBLIC_APP_SERVICE_URL= <app service url here>
| Decision | Reason |
|---|---|
| Service Separation | Modularity and scalability |
| JWT Authentication | Stateless and scalable auth |
| Prisma ORM | Type-safe database interaction |
| React Query | Efficient server-state management |
| Cloud Deployment | Real-world distributed simulation |
- Refresh token implementation
- Real-time updates (WebSockets)
- Notifications system
- User preferences module
- Docker containerization
- Reverse proxy configuration
- CI/CD pipeline integration
- Backend architecture understanding
- Secure authentication implementation
- REST API design
- Cloud deployment experience
- Environment configuration management
- Security-focused backend practices
Vipul Kumar Patel Computer Science Student Focused on Backend Systems, Distributed Architecture & Scalable Applications