Feature
Description
π Multilingual
Portuguese, English, and Spanish β switch with one click
π Authentication
Secure sign-up/sign-in with NextAuth.js & bcrypt
π Kanban Board
Drag-and-drop tasks with optimistic updates for zero-latency UX
π Productivity Analytics
Interactive bar charts powered by Recharts
ποΈ Gantt Chart View
Visual timeline of project tasks
π
Calendar View
See tasks organized by due dates in a calendar layout
π Advanced Search & Filters
Real-time search and project filtering
π·οΈ Tags System
Categorize and filter tasks with custom tags
π Subtasks
Break down tasks into checklist subtasks
π¬ Comments
Discuss tasks with inline comments
π Notifications
Real-time notification bell with unread indicators
π Project Sharing
Share projects with other users
π Duplicate Tasks
Clone tasks with a single click
π Advanced Reports
Detailed productivity and project reports
πΈοΈ Webhooks
Integrate with external services via webhooks
π€ CSV Export
Export your tasks to CSV with one click
π Dark Mode
System-aware theme with manual toggle, persisted in localStorage
π± Fully Responsive
Mobile-first design that works on every screen size
β‘ Server State Management
Expert-level caching with TanStack Query
π¨ Animated UI
Smooth animations, counters, and micro-interactions
π‘οΈ Type Safety
Full TypeScript with strict mode
π§ͺ CI/CD & E2E Testing
Jest unit tests + Playwright E2E tests
Portuguese
English
Spanish
Portuguese
English
Spanish
Kanban Board
Gantt Chart
Calendar View
Analytics
Reports
Light Mode
Mobile View
Layer
Technology
Framework
Next.js 16 (App Router)
UI Library
React 19
Styling
Tailwind CSS 4
Icons
Lucide React
Database
PostgreSQL 16 + Prisma ORM 7
Auth
NextAuth.js v4
State Management
TanStack Query v5
Charts
Recharts
i18n
next-intl
Validation
Zod
Testing
Jest + Playwright
DevOps
Docker + GitHub Actions
Node.js 18+
npm / yarn / pnpm
PostgreSQL 16 (or use Docker)
# Clone the repository
git clone https://github.com/valentimpalacio/taskflow.git
cd taskflow
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env
# Generate Prisma client
npx prisma generate
# Push schema to database
npx prisma db push
This creates a demo user:
Email: demo@taskflow.com
Password: demo123456
With 3 sample projects and 10 tasks to explore.
Open http://localhost:3000 β automatically redirects to Portuguese.
π Internationalization
TaskFlow supports 3 languages out of the box:
Language
Code
Status
π§π· PortuguΓͺs
pt
β
Default
πΊπΈ English
en
β
Supported
πͺπΈ EspaΓ±ol
es
β
Supported
Translations are stored in JSON files under src/i18n/messages/.
src/
βββ app/
β βββ [locale]/ # Internationalized routes
β β βββ auth/
β β β βββ signin/ # Sign-in page
β β β βββ signup/ # Sign-up page
β β βββ profile/ # User profile page
β β βββ error.tsx # Error boundary
β β βββ loading.tsx # Loading state
β β βββ not-found.tsx # 404 page
β β βββ layout.tsx # Locale layout
β β βββ page.tsx # Dashboard page
β βββ api/ # API routes
β β βββ auth/ # NextAuth + signup
β β βββ comments/ # Task comments
β β βββ duplicate/ # Duplicate tasks
β β βββ health/ # Health check
β β βββ notifications/ # User notifications
β β βββ project-access/# Project sharing
β β βββ projects/ # CRUD projects (+ templates)
β β βββ subtasks/ # Task subtasks
β β βββ tags/ # Task tags
β β βββ tasks/ # CRUD tasks (+ dependencies)
β β βββ test-db/ # DB connection test
β β βββ user/ # User profile
β β βββ webhooks/ # Webhook management
β βββ globals.css # Global styles + animations
βββ components/
β βββ Dashboard.tsx # Main dashboard
β βββ dashboard/ # Dashboard sub-components
β βββ Header.tsx
β βββ StatsCards.tsx
β βββ KanbanBoard.tsx
β βββ ProjectList.tsx
β βββ AllTasks.tsx
β βββ ProjectForm.tsx
β βββ TaskForm.tsx
β βββ TaskEditModal.tsx
β βββ ProjectEditModal.tsx
β βββ Modal.tsx
β βββ Toast.tsx
β βββ ProductivityChart.tsx
β βββ AdvancedReports.tsx
β βββ CalendarView.tsx
β βββ CommentsSection.tsx
β βββ DuplicateTaskModal.tsx
β βββ GanttChartView.tsx
β βββ NotificationBell.tsx
β βββ ProjectSharingModal.tsx
β βββ SubtasksPanel.tsx
β βββ TagsInput.tsx
β βββ WebhookManager.tsx
βββ i18n/ # Internationalization config
βββ lib/ # Utilities, auth, prisma
βββ types/ # TypeScript types
Method
Endpoint
Description
POST
/api/auth/signup
Register a new user
POST
/api/auth/signin
Sign in (NextAuth)
GET
/api/auth/session
Get current session
Method
Endpoint
Description
GET
/api/projects
Get all user projects with tasks
POST
/api/projects
Create a new project
PUT
/api/projects/[id]
Update a project
DELETE
/api/projects/[id]
Delete a project and its tasks
GET
/api/projects/templates
Get project templates
Method
Endpoint
Description
POST
/api/tasks
Create a new task
PUT
/api/tasks/[id]
Update a task
DELETE
/api/tasks/[id]
Delete a task
POST
/api/tasks/dependencies
Manage task dependencies
Comments
Method
Endpoint
Description
GET
/api/comments
Get task comments
POST
/api/comments
Add a comment
Method
Endpoint
Description
GET
/api/subtasks
Get task subtasks
POST
/api/subtasks
Create / update subtasks
Method
Endpoint
Description
GET
/api/tags
Get all tags
POST
/api/tags
Create / manage tags
Method
Endpoint
Description
GET
/api/notifications
Get user notifications
PUT
/api/notifications
Mark as read
Method
Endpoint
Description
GET
/api/project-access
Get project collaborators
POST
/api/project-access
Share project with user
Method
Endpoint
Description
GET
/api/webhooks
List webhooks
POST
/api/webhooks
Create / manage webhook
Method
Endpoint
Description
POST
/api/duplicate
Duplicate a task
Method
Endpoint
Description
GET
/api/user/profile
Get current user profile
PUT
/api/user/profile
Update display name
Method
Endpoint
Description
GET
/api/health
Application health check
GET
/api/test-db
Database connection test
# Run unit tests
npm test
# Run E2E tests (Playwright)
npx playwright test
# Start PostgreSQL
docker compose up -d
# Run the app
npm run dev
Passwords hashed with bcrypt (10 salt rounds)
JWT -based session management
All API routes protected with session authentication
Server-side input validation on all endpoints
Cascade deletion ensures data consistency
Rate limiting on auth endpoints
Command
Description
npm run dev
Start development server
npm run build
Build for production
npm start
Start production server
npm run lint
Run ESLint
npm test
Run tests
npm run seed
Seed database with demo data
npm run db:generate
Regenerate Prisma client
npm run db:push
Push schema to database
npm run db:migrate
Run Prisma migrations
npm run db:studio
Open Prisma Studio
This project is licensed under the MIT License β see the LICENSE file for details.
Built with β€οΈ using Next.js, TypeScript, Prisma, and Tailwind CSS
β Star this repo if you find it useful!