Skip to content

MarceloAdan73/task-manager-pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

118 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Task Manager Pro - Full-Stack Application

CI

Next.js TypeScript React Query Node.js Express PostgreSQL Prisma Docker JWT Vercel Render MIT License


๐ŸŒ Live Application

Environment ๐Ÿ”— URL ๐Ÿ“Š Status
๐ŸŽจ Frontend
(Vercel)
Vercel ๐ŸŸข Active
๐Ÿ—„๏ธ Database
(Neon PostgreSQL)
Neon ๐ŸŸข Active

๐Ÿ“– Overview

Task Manager Pro is a professional full-stack task management application built with modern technologies and best practices. It features secure JWT authentication, real-time optimistic updates, and a responsive dark-themed UI. The application is fully containerized with Docker and deployed to production with CI/CD pipelines.

๐Ÿง  Architected by Marcelo Adรกn
"Code orchestrated by me with AI support as a development tool, maintaining professional standards and architectural decisions typical of a Full-Stack developer."


๐Ÿ“ธ Application Screenshots

Dark Mode Dashboard Light Mode Dashboard
Dark Mode Dashboard
Task Creation Modal Mobile Responsive View
Task Creation Mobile View

๐Ÿ–ผ๏ธ Screenshots Description

Image Description
Dark Mode Main dashboard with dark theme, showing task list with priority badges (MEDIUM, HIGH, URGENT) and "In Progress" status indicators
Dashboard Light mode overview with task statistics (3 total, 0 completed) and progress bars showing 50% completion rate
Task Creation Modal form for creating new tasks with title (8/100 chars), description (0/500 chars), and priority selector (Medium selected)
Mobile View Responsive mobile layout with search bar, progress overview (25% complete), and task cards with "Read More" options

๐ŸŽฏ Key UI Features Demonstrated

Feature Location
โœ… Dark/Light theme toggle Both dashboard views
โœ… Priority badges (LOW/MEDIUM/HIGH/URGENT) Dark Mode screenshot
โœ… Progress tracking Dashboard (50% bar)
โœ… Form validation Task Creation (character counters)
โœ… Responsive design Mobile View
โœ… Task metadata (date, status) All views
โœ… Optimistic updates Task Creation footer

โœจ Key Features

๐Ÿ” Authentication & Security

  • โœ… JWT Authentication - Secure login with token-based authentication
  • ๐Ÿ›ก๏ธ Password Hashing - Bcrypt for secure password storage
  • ๐Ÿ”’ Protected Routes - Middleware for endpoint authorization
  • ๐Ÿšฆ Rate Limiting - Protection against brute-force attacks
  • ๐Ÿ›ก๏ธ Helmet.js - Secure HTTP headers configuration

๐Ÿ“‹ Task Management

  • โž• Create Tasks - Add new tasks with title, description, and priority
  • โœ๏ธ Edit Tasks - Modify existing task details
  • โœ… Toggle Completion - Mark tasks as complete/incomplete
  • ๐Ÿ—‘๏ธ Delete Tasks - Remove tasks from the system
  • ๐ŸŽฏ Priority Levels - LOW, MEDIUM, HIGH, URGENT

๐ŸŽจ Modern UI/UX

  • ๐ŸŒ™ Dark Mode - Toggle between light and dark themes
  • ๐Ÿ“ฑ Responsive Design - Mobile-first approach for all devices
  • โšก Optimistic Updates - Instant UI feedback with React Query
  • ๐ŸŽฏ Priority Badges - Color-coded priority indicators
  • ๐Ÿ”„ Loading States - Skeleton loaders and progress indicators

๐Ÿš€ Technical Excellence

  • โšก Next.js 16 App Router - Modern React framework with server components
  • ๐ŸŽญ TypeScript Strict Mode - 0 errors, end-to-end type safety
  • ๐Ÿ“Š React Query v5 - Advanced caching and optimistic updates
  • ๐Ÿ—„๏ธ PostgreSQL + Prisma - Type-safe database ORM with migrations
  • ๐Ÿณ Docker Multi-stage - Optimized container builds
  • ๐Ÿ”ง CI/CD Pipeline - Automated deployments via GitHub
  • ๐Ÿ“Š GraphQL API - Apollo Server with full CRUD operations
  • ๐Ÿ“ฅ CSV Export - Client-side generation with file-saver
  • ๐Ÿ“„ PDF Export - Professional PDF generation with jsPDF

๐Ÿ› ๏ธ Technology Stack

Frontend

Category Technology Version Purpose
Framework Next.js 16.1.3 React framework with App Router
Language TypeScript 5.9.3 Type safety, 0 errors
State Management React Query 5.90.19 Server state, caching
Styling Tailwind CSS 3.4 Utility-first CSS
UI Components Framer Motion 12.29 Animations
Icons Lucide React 0.563 Icon library
Testing Jest + RTL + Playwright - Unit, Integration & E2E tests (94 tests)
Date Handling date-fns 4.1 Date formatting
File Export jsPDF 2.5 PDF generation
File Export file-saver 2.0 CSV generation

Backend

Category Technology Version Purpose
Runtime Node.js 20.x JavaScript runtime
Framework Express 4.22 Web framework
Language TypeScript 5.9.3 Type safety
Database PostgreSQL 15 Relational database
ORM Prisma 6.19.2 Type-safe database client
GraphQL Apollo 5.5 GraphQL API
Authentication JWT + Bcrypt - Secure auth
Validation Zod 4.3 Schema validation
Security Helmet + CORS - Security headers
Testing Jest + Supertest - Integration tests (30 tests)

DevOps & Deployment

Category Technology Purpose
Containerization Docker Multi-stage builds
Orchestration Docker Compose Local development stack
Frontend Hosting Vercel Production deployment
Backend Hosting Render API + PostgreSQL
Version Control Git + GitHub Source code
CI/CD GitHub Actions Automated pipelines

๐Ÿ“ Project Architecture

๐Ÿ“‚ Click to expand full project structure
task-manager-pro/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ frontend/                               # Next.js 16 + TypeScript
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ app/                            # App Router
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ layout.tsx                  # Root layout
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ page.tsx                    # Dashboard
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ login/                       # Login page
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ components/                      # UI Components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ TaskCard/                    # Task card
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ TaskForm/                    # Create task
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ TaskList/                    # Task list
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ TaskEditModal/               # Edit modal
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ DarkModeToggle/              # Theme switcher
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ context/                         # React Context
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ AuthContext.tsx              # Auth state
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ ThemeContext.tsx             # Dark/light theme
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ hooks/                           # Custom Hooks
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ useTasks.ts                  # React Query
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ useTasks.test.tsx
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ lib/                             # Utilities
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ api/                         # API client
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ types/                       # TypeScript types
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ __tests__/                        # Frontend tests (56)
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ ๐Ÿ“ config/                               # Configuration files
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ Dockerfile
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ vercel.json
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ next.config.js
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ tailwind.config.js
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ jest.config.js
โ”‚       โ””โ”€โ”€ ๐Ÿ“„ package.json
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ backend/                                 # Express + TypeScript + Prisma
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ controllers/                     # Business logic
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ auth.controller.ts           # Login/register
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ task.controller.ts           # Task CRUD
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ middleware/                       # Express middleware
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ auth.middleware.ts           # JWT
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ validate.ts                  # Zod
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ rateLimit.ts                 # Rate limiting
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ helmet.ts                    # Security
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ routes/                           # API endpoints
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ auth.routes.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ task.routes.ts
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ validators/                       # Zod schemas
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ auth.validator.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ task.validator.ts
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ database/                         # Prisma client
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ prisma.ts
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ config/                           # Configuration
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ env.ts                       # Validation
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ cors.ts                      # CORS
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ server.ts                         # Entry point
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ prisma/                               # Database
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ schema.prisma                    # Models
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ migrations/                       # SQL migrations
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ seed.js                           # Demo data
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ tests/                                # Backend tests (30)
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ unit/
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ setup/
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ ๐Ÿ“ config/                               # Configuration files
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ Dockerfile
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ render.yaml
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ jest.config.js
โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ tsconfig.json
โ”‚       โ””โ”€โ”€ ๐Ÿ“„ package.json
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ docker-compose.yml                        # Local development stack
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ .gitignore                                # Git ignored files
โ”‚
โ””โ”€โ”€ ๐Ÿ“„ README.md                                 # This documentation

๐Ÿ“Š Quality Metrics

Metric Value Status
Frontend Tests 56 (44 + 12 skipped) 100%
Backend Tests 30/30 100%
E2E Tests 8/8 100%
Total Tests 94/94 100%
TypeScript Errors 0 Strict
Docker Images 2 (backend + frontend) Docker
Containers 3 (db + backend + frontend) Compose
Code Comments 100% English Docs
Lighthouse Score >90 Performance

๐Ÿš€ Quick Start Guide

Option 1: Try Live Demo (No Installation)

Simply visit:

https://taskmanager-pro-pi.vercel.app

Use demo credentials:

Email: demo@taskmanager.com
Password: demo123

Option 2: Local Development

๐Ÿ“‹ Prerequisites

  • Node.js 20.x or higher
  • npm 9.x or higher
  • PostgreSQL 15 (optional, if not using Docker)

๐Ÿ› ๏ธ Setup Instructions

# 1. Clone the repository
git clone https://github.com/MarceloAdan73/task-manager-pro.git
cd task-manager-pro

# 2. Backend setup
cd backend
cp .env.example .env
npm install
npx prisma migrate dev
npm run dev
# Backend runs on http://localhost:3005

# 3. Frontend setup (new terminal)
cd frontend
cp .env.local.example .env.local
npm install
npm run dev
# Frontend runs on http://localhost:3004

# 4. Open browser
# http://localhost:3004

Option 3: Docker Setup (Recommended)

# 1. Clone repository
git clone https://github.com/MarceloAdan73/task-manager-pro.git
cd task-manager-pro

# 2. Start all services
docker-compose up -d

# 3. Access application
# Frontend: http://localhost:3004
# Backend API: http://localhost:3005/api/health
# WebSocket Server: ws://localhost:3005

# 4. View logs (optional)
docker-compose logs -f

# 5. Stop services
docker-compose down

โšก WebSocket Feature: Real-time notifications via Socket.io are available only in local Docker setup. Production deployment (Vercel + Render) has NO WebSocket support.


๐ŸŽฎ Usage Guide

Authentication

  1. Navigate to the login page
  2. Use demo credentials or register
  3. JWT token auto-stored in localStorage

Task Management

Action How to
Create Task Click "Add Task" โ†’ Fill form โ†’ Submit
Edit Task Click on task card โ†’ Modify โ†’ Save
Complete Task Click checkbox on task card
Delete Task Click trash icon on task card
Filter Tasks Use tabs (All/Pending/Completed)
Change Priority Edit task โ†’ Select priority

UI Features

  • ๐ŸŒ™ Dark Mode - Click sun/moon icon in header
  • ๐Ÿ“ฑ Responsive - Works on mobile, tablet, desktop
  • โšก Real-time - Optimistic updates with React Query

๐Ÿณ Docker Commands

Command Description
docker-compose up -d Start all services
docker-compose logs -f View real-time logs
docker-compose down Stop all services
docker-compose down -v Stop and delete database
docker-compose build backend Rebuild backend only

WebSocket (Socket.io) - Local Development Only

The application implements real-time bidirectional communication using Socket.io, available exclusively in the local Docker environment for demonstration purposes.

Architecture

Layer Technology Description
Transport WebSocket + Polling Dual transport with automatic fallback
Protocol Socket.io 4.8.3 Event-based real-time protocol
Authentication JWT (jsonwebtoken) Token passed via handshake auth
Authorization Middleware Per-connection JWT verification

Server Implementation

// Socket.io server with JWT authentication
const io = new Server(httpServer, { cors: { ... } });
io.use(authMiddleware);  // JWT verification on every connection
io.on('connection', (socket) => {
  socket.on('join:user', (userId) => socket.join(`user:${userId}`));
});

Events

Event Payload Description
task:created { taskId, userId, data, timestamp } New task created
task:updated { taskId, userId, data, timestamp } Task modified
task:deleted { taskId, userId, timestamp } Task removed

Client Connection

// Frontend hook pattern
const socket = io(url, {
  auth: { token: jwt },
  transports: ['websocket', 'polling'],
  reconnection: true,
  reconnectionAttempts: 5,
});
socket.emit('join:user', userId);

Testing

# WebSocket endpoint
ws://localhost:3005

# Or with wscat
npx wscat -c ws://localhost:3005 -t "Bearer <jwt_token>"

Note: WebSocket functionality is restricted to local Docker deployment for demonstration. Production deployments (Vercel + Render) have NO WebSocket support.


Command Description
docker exec -it taskmanager-backend sh Access container shell
docker ps List running containers
docker stats View resource usage

๐Ÿงช Testing

Backend Tests

cd backend
npm test          # Run all tests
npm test:watch    # Watch mode
npm test:coverage # Coverage report

Frontend Tests

cd frontend
npm test          # Run all tests
npm test:watch    # Watch mode
npm test:coverage # Coverage report

E2E Tests (Playwright)

cd frontend
npx playwright test     # Run E2E tests
npx playwright test --ui  # UI mode

Test Coverage

โœ… Backend: 30/30 tests
   โ€ข Auth Controller
   โ€ข Task Controller
   โ€ข Middleware
   โ€ข Utilities

โœ… Frontend: 56 tests (44 passed + 12 skipped)
   โ€ข Components
   โ€ข Hooks
   โ€ข API Client
   โ€ข Contexts

โœ… E2E: 8/8 tests (Playwright)
   โ€ข Login
   โ€ข CRUD Tasks
   โ€ข Dark Mode

๐Ÿšง Future Improvements

Short Term Medium Term Long Term
โœ… CSV/PDF export ๐Ÿ‘ฅ Team collaboration ๐Ÿ“ฑ Mobile app
โœ… GraphQL API ๐Ÿ”„ WebSockets real-time ๐Ÿค– AI task suggestions
๐Ÿ“Š Dashboard with charts ๐Ÿท๏ธ Categories/Tags ๐Ÿ“Ž File attachments
โฐ Due dates/Reminders ๐Ÿ“ง Email notifications ๐Ÿ“… Calendar integration

๐Ÿค Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • โœ… Write tests for new features
  • โœ… Maintain 100% TypeScript strictness
  • โœ… Follow existing code style
  • โœ… Update documentation

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ‘จโ€๐Ÿ’ป Author

Marcelo Adรกn - Full-Stack Developer

GitHub LinkedIn Portfolio

๐Ÿง  Architectural Note: This project's codebase is orchestrated by Marcelo Adรกn, with AI assistance as a development tool to accelerate implementation while maintaining professional standards and senior-level architectural decisions.


๐Ÿ™ Acknowledgements


โญ Support

If you find this project useful, please consider giving it a star on GitHub!

Star on GitHub


Built with โค๏ธ by Marcelo Adรกn | ยฉ 2026 Task Manager Pro

About

Full-stack task manager with Next.js 16, Express, PostgreSQL, JWT auth, Docker and deployment ready

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors