Skip to content

Latest commit

Β 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Taskflow

Taskflow Logo

A modern, multi-tenant task and project management platform built for teams and organizations.

Next.js TypeScript Prisma Tailwind CSS License

Live Demo β€’ Documentation β€’ Report Bug β€’ Request Feature

πŸš€ Overview

Taskflow is a comprehensive, enterprise-grade task and project management platform designed to streamline workflows for teams of all sizes. Built with modern web technologies and a focus on scalability, security, and user experience.

✨ Key Features

  • πŸ” Advanced Authentication: Multi-provider auth with 2FA, passkeys, and secure session management
  • 🏒 Multi-Tenant Architecture: Complete organization management with role-based access control
  • πŸ“‹ Task & Project Management: Comprehensive workflow management with team collaboration
  • 🌍 Internationalization: Multi-language support with RTL capabilities
  • πŸ“± PWA Ready: Progressive Web App with offline support and push notifications
  • 🎨 Modern UI: Beautiful, accessible interface with dark/light themes
  • ⚑ High Performance: Optimized with caching, lazy loading, and modern web standards

πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 15 with App Router
  • Language: TypeScript with strict type checking
  • UI Components: Radix UI + shadcn/ui
  • Styling: Tailwind CSS 4.1.3
  • State Management: tRPC + TanStack Query
  • Internationalization: next-intl
  • Icons: Lucide React

Backend & Database

  • Database: PostgreSQL
  • ORM: Prisma 6.6.0
  • Authentication: NextAuth.js v5 with Better Auth
  • API: tRPC for type-safe APIs
  • Caching: Redis
  • File Storage: Configurable cloud storage

Development Tools

  • Package Manager: pnpm
  • Linting: ESLint + Prettier
  • Testing: Jest (configured)
  • Git Hooks: Husky + lint-staged
  • Code Quality: TypeScript strict mode

πŸ“ Project Structure

taskflow/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”‚   └── [locale]/          # Internationalized routes
β”‚   β”‚       β”œβ”€β”€ (public)/      # Public pages
β”‚   β”‚       β”œβ”€β”€ (protected)/   # Authenticated pages
β”‚   β”‚       β”œβ”€β”€ (handler)/     # User dashboard
β”‚   β”‚       └── (panel)/       # Admin panel
β”‚   β”œβ”€β”€ modules/               # Feature modules
β”‚   β”‚   β”œβ”€β”€ auth/              # Authentication system
β”‚   β”‚   β”œβ”€β”€ organization/      # Multi-tenant features
β”‚   β”‚   β”œβ”€β”€ project/           # Project management
β”‚   β”‚   β”œβ”€β”€ task/              # Task management
β”‚   β”‚   β”œβ”€β”€ user/              # User management
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ components/            # Shared components
β”‚   β”œβ”€β”€ packages/              # Internal packages
β”‚   └── resources/             # Resources & configs
β”œβ”€β”€ prisma/
β”‚   └── schema/                # Database schema
β”œβ”€β”€ public/                    # Static assets
└── docs/                      # Documentation

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • Redis server (optional, for caching)
  • pnpm package manager

Installation

  1. Clone the repository

    git clone https://github.com/your-org/taskflow.git
    cd taskflow
  2. Install dependencies

    pnpm install
  3. Set up environment variables

    cp .env.example .env
    # Edit .env with your configuration
  4. Set up the database

    pnpm db:push    # Push schema to database
    pnpm db:studio  # Open Prisma Studio (optional)
  5. Start the development server

    pnpm dev
  6. Open your browser Navigate to http://localhost:3000

Environment Variables

Create a .env file with the following variables:

# Database
DATABASE_URL="postgresql://username:password@localhost:5432/taskflow"

# Authentication
AUTH_SECRET="your-auth-secret"
AUTH_GITHUB_ID="your-github-client-id"
AUTH_GITHUB_SECRET="your-github-client-secret"

# Redis (optional)
REDIS_USERNAME="your-redis-username"
REDIS_PASSWORD="your-redis-password"
REDIS_SOCKET_HOST="localhost"
REDIS_SOCKET_PORT=6379

# Web Push (for PWA notifications)
VAPID_PRIVATE_KEY="your-vapid-private-key"
NEXT_PUBLIC_VAPID_PUBLIC_KEY="your-vapid-public-key"

# Development
NODE_ENV="development"
USE_DEBUG_LOGS=true

πŸ“– Documentation

Core Features

πŸ” Authentication System

  • Multiple Providers: Email/password, GitHub OAuth, Passkeys (WebAuthn)
  • Security Features: 2FA with backup codes, session management, account lockout
  • Password Policies: Complexity requirements, history tracking, secure reset flows

🏒 Multi-Tenant Architecture

  • Organization Management: Complete org hierarchy with branding and settings
  • Role-Based Access Control: Granular permissions system
  • User Management: Comprehensive profiles with preferences and security settings
  • Team Collaboration: Team structures and project assignments

πŸ“‹ Task & Project Management

  • Task Management: Create, assign, track, and manage tasks
  • Project Organization: Project hierarchies with milestones and dependencies
  • Collaboration: Real-time updates, comments, and file attachments
  • Analytics: Dashboard with productivity metrics and reporting

🌍 Internationalization

  • Supported Languages: English, Hindi, Japanese, Slovak, Urdu
  • RTL Support: Right-to-left language support
  • Localization: Timezone, currency, and date format customization

API Documentation

The API is built with tRPC for type-safe client-server communication. Key endpoints include:

  • Authentication: /api/auth/* - Login, register, password reset
  • Users: /api/users/* - User management and profiles
  • Organizations: /api/organizations/* - Multi-tenant features
  • Projects: /api/projects/* - Project management
  • Tasks: /api/tasks/* - Task operations

Database Schema

The database uses PostgreSQL with the following main entities:

  • Users: User accounts with security features
  • Organizations: Multi-tenant organization structure
  • Roles & Permissions: RBAC system
  • Projects: Project management entities
  • Tasks: Task management with assignments
  • Sessions: Secure session tracking

πŸ§ͺ Development

Available Scripts

# Development
pnpm dev              # Start development server with Turbo
pnpm dev-https        # Start with HTTPS

# Building
pnpm build            # Production build
pnpm start            # Start production server
pnpm preview          # Preview production build

# Database
pnpm db:generate      # Generate Prisma client
pnpm db:push          # Push schema to database
pnpm db:migrate       # Run migrations
pnpm db:studio        # Open Prisma Studio
pnpm db:reset         # Reset database

# Code Quality
pnpm lint             # Run ESLint
pnpm lint:fix         # Fix ESLint issues
pnpm typecheck        # Run TypeScript checks
pnpm format:check     # Check Prettier formatting
pnpm format:write     # Apply Prettier formatting
pnpm fix              # Fix all linting and formatting issues

# Testing
pnpm test             # Run tests
pnpm test:watch       # Run tests in watch mode

# Utilities
pnpm generate-icons   # Generate icon components
pnpm generate-screenshots  # Generate screenshots for documentation

Code Style

This project uses:

  • ESLint with Next.js and TypeScript configurations
  • Prettier for code formatting
  • Husky for Git hooks
  • lint-staged for pre-commit checks

Contributing

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

Please ensure your code follows the project's coding standards and includes appropriate tests.

πŸš€ Deployment

Production Deployment

  1. Build the application

    pnpm build
  2. Set up production environment variables

    • All required environment variables must be set
    • NODE_ENV should be set to production
    • Database and Redis connections must be configured
  3. Database migrations

    pnpm db:migrate
  4. Start the application

    pnpm start

Docker Deployment

A Docker configuration can be set up for containerized deployment. The application is designed to work with:

  • PostgreSQL as the primary database
  • Redis for caching and session storage
  • CDN for static asset delivery

Environment-Specific Considerations

  • Development: Source maps enabled, debug logs, hot reload
  • Production: Optimized builds, security headers, caching enabled
  • Testing: Isolated test database, mock services

πŸ”’ Security

Taskflow implements multiple security measures:

  • Authentication: Secure password hashing, session management, 2FA
  • Authorization: Role-based access control with granular permissions
  • Data Protection: Input validation, SQL injection prevention, XSS protection
  • Infrastructure: Security headers, HTTPS enforcement, secure cookies
  • Compliance: GDPR considerations, data privacy controls

🌟 Roadmap

Phase 1: Core Features βœ…

  • Authentication system
  • Multi-tenant architecture
  • Basic task management
  • User management

Phase 2: Enhanced Features πŸ”„

  • Advanced project management
  • Real-time collaboration
  • File management system
  • Advanced analytics

Phase 3: Integrations πŸ“‹

  • Third-party integrations (Slack, GitHub, etc.)
  • API for external developers
  • Webhook system
  • Custom workflows

Phase 4: Enterprise Features πŸ“‹

  • Advanced security features
  • Compliance tools
  • Advanced reporting
  • Custom branding

πŸ“„ License

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

🀝 Support

πŸ™ Acknowledgments


Built with ❀️ by the Taskflow Team

Twitter GitHub stars

About

Taskflow is a comprehensive, enterprise-grade task and project management platform designed to streamline workflows for teams of all sizes. Built with modern web technologies and a focus on scalability, security, and user experience.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages