A modern, collaborative task management platform for teams
Features β’ Tech Stack β’ Getting Started β’ API Documentation β’ License
Taskly is a full-stack task management platform designed for teams that need to collaborate efficiently. Built with modern technologies, it provides an intuitive interface for organizing tasks in a Kanban-style board with drag-and-drop functionality.
Whether you're managing a small project or coordinating a large team, Taskly offers role-based access control, real-time updates, and a clean, responsive UI that works seamlessly across devices.
- Create and manage teams with custom information (name, company, description)
- Role-based access control with
ownerandmemberroles - Invite members to collaborate on team projects
- View all teams you belong to in a unified dashboard
- Customizable columns with names and colors
- Drag-and-drop tasks between columns for seamless workflow
- Drag-and-drop columns to reorder your board
- Task details including title, description, and position tracking
- Visual organization with color-coded columns
- JWT-based authentication with access and refresh tokens
- Secure password hashing with bcrypt
- HTTP-only cookies for token storage
- Protected routes and API endpoints
- Responsive design that works on desktop, tablet, and mobile
- Dark mode with a sleek, modern aesthetic
- Toast notifications for real-time feedback
- Loading states and smooth transitions
| Technology | Description |
|---|---|
| NestJS 11 | Progressive Node.js framework for scalable server-side applications |
| TypeORM 0.3 | Object-Relational Mapping for TypeScript and JavaScript |
| PostgreSQL | Powerful, open-source relational database |
| JWT | JSON Web Tokens for secure authentication |
| Swagger | API documentation and testing interface |
| class-validator | Decorator-based validation for DTOs |
| bcrypt | Password hashing library |
| Technology | Description |
|---|---|
| Next.js 16 | React framework with server-side rendering and app router |
| React 19 | Latest React with concurrent features |
| TypeScript 5 | Type-safe JavaScript development |
| TailwindCSS 4 | Utility-first CSS framework |
| Jotai | Primitive and flexible state management |
| Axios | Promise-based HTTP client |
| Sonner | Toast notifications library |
taskly/
βββ backend/ # NestJS API Server
β βββ src/
β β βββ data/ # Database configuration & migrations
β β β βββ migrations/ # TypeORM migrations
β β β βββ data-source.ts # DataSource configuration
β β βββ modules/
β β β βββ auth/ # Authentication (login, JWT)
β β β βββ user/ # User management
β β β βββ team/ # Team CRUD operations
β β β βββ team-member/ # Team membership management
β β β βββ task/ # Task management
β β β βββ task-column/ # Kanban column management
β β β βββ refresh-token/ # Token refresh handling
β β β βββ common/ # Shared entities and utilities
β β βββ main.ts # Application entry point
β βββ package.json
β
βββ frontend/ # Next.js Client Application
β βββ app/
β β βββ (auth)/ # Auth pages (login, signup)
β β βββ (main)/ # Main app pages (dashboard, team)
β β βββ _extra/ # Shared utilities, API, atoms
β βββ package.json
β
βββ README.md
- Node.js >= 18.x
- PostgreSQL (local or cloud instance like Neon/Supabase)
- npm or yarn
git clone https://github.com/gbatistaa/taskly.git
cd tasklycd backend
npm installCreate a .env file:
PORT=4000
DB_PORT=5432
HOST=localhost
DB_USER=your_username
PASSWORD=your_password
DATABASE=taskly
NODE_ENV=development
JWT_SECRET=your_super_secret_key
DB_TYPE=postgresRun migrations and start the server:
npm run migration:run
npm run start:devcd frontend
npm install
npm run dev| Service | URL |
|---|---|
| Frontend | http://localhost:3000 |
| Backend API | http://localhost:4000 |
| Swagger Docs | http://localhost:4000/api |
The API is fully documented with Swagger. After starting the backend, visit:
http://localhost:4000/api
| Method | Endpoint | Description |
|---|---|---|
POST |
/auth/login |
User login |
POST |
/auth/refresh |
Refresh access token |
POST |
/user/create |
Register new user |
GET |
/user/teams |
Get user's teams |
POST |
/team |
Create new team |
GET |
/team/:id |
Get team by ID |
POST |
/task-column |
Create task column |
POST |
/task |
Create task |
Taskly uses TypeORM migrations for database schema management:
# Generate a new migration based on entity changes
npm run migration:generate -- src/data/migrations/MigrationName
# Run pending migrations
npm run migration:run
# Revert the last migration
npm run migration:revert
# Create an empty migration
npm run migration:create -- src/data/migrations/MigrationName# Run unit tests
npm run test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:cov
# Run e2e tests
npm run test:e2eRecommended platforms:
- Railway - Easy PostgreSQL + Node.js hosting
- Render - Free tier available
- Fly.io - Edge deployment
- Vercel - Optimized for Next.js (recommended)
- Netlify - Static and SSR support
- Neon - Serverless PostgreSQL
- Supabase - PostgreSQL with extras
- Railway - Managed PostgreSQL
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ and β