Skip to content

Project Management app with authentication (GitHub, Google), workspace, projects, members, and tasks (table, kanban, calendar views). Built with Hono, Appwrite, Next.js, React Big Calendar, React Hook Form, Zod, and Shadcn UI.

Notifications You must be signed in to change notification settings

mandouro-22/tasky

Repository files navigation

πŸ“‹ Tasky - Task Management Application

A modern, full-featured task management application built with Next.js and Appwrite. Tasky helps teams organize their work with workspaces, projects, tasks, and powerful collaboration features.

✨ Features

🎯 Core Features

  • Workspace Management: Create and manage multiple workspaces for different teams or projects
  • Project Organization: Organize tasks into projects with custom settings
  • Task Management: Create, edit, assign, and track tasks with detailed information
  • Member Collaboration: Invite team members and manage workspace/project access
  • Drag & Drop: Intuitive drag-and-drop interface for task organization
  • Calendar View: Visualize tasks and deadlines in a calendar format
  • Analytics Dashboard: Track project progress and team performance with charts
  • Authentication: Secure user authentication with OAuth support
  • Responsive Design: Fully responsive UI that works on desktop and mobile devices

🎨 UI/UX Features

  • Modern, clean interface built with Shadcn UI components
  • Smooth animations and transitions
  • Accessible components following ARIA standards
  • Toast notifications for user feedback
  • Loading states and error handling
  • Responsive navigation and sidebar

πŸ› οΈ Tech Stack

Frontend Framework

Backend & Database

  • Appwrite - Backend as a Service (BaaS)
    • Database (NoSQL)
    • Authentication
    • Storage
    • Real-time subscriptions

API Layer

State Management & Data Fetching

UI Components & Styling

Forms & Validation

UI Libraries & Features

Development Tools

πŸ“ Project Structure

tasky/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                      # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ (auth)/              # Authentication routes (sign-in, sign-up)
β”‚   β”‚   β”œβ”€β”€ (dashboard)/         # Dashboard routes (workspaces, projects, tasks)
β”‚   β”‚   β”œβ”€β”€ (standalone)/        # Standalone pages (workspace/project creation)
β”‚   β”‚   β”œβ”€β”€ api/                 # API routes with Hono
β”‚   β”‚   β”œβ”€β”€ oauth/               # OAuth callback handling
β”‚   β”‚   β”œβ”€β”€ globals.css          # Global styles
β”‚   β”‚   β”œβ”€β”€ layout.tsx           # Root layout
β”‚   β”‚   β”œβ”€β”€ loading.tsx          # Global loading state
β”‚   β”‚   β”œβ”€β”€ error.tsx            # Global error boundary
β”‚   β”‚   └── not-found.tsx        # 404 page
β”‚   β”‚
β”‚   β”œβ”€β”€ components/              # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ ui/                  # Shadcn UI components
β”‚   β”‚   β”œβ”€β”€ analytics/           # Analytics components
β”‚   β”‚   β”œβ”€β”€ navbar/              # Navigation bar
β”‚   β”‚   β”œβ”€β”€ sidebar/             # Sidebar navigation
β”‚   β”‚   β”œβ”€β”€ projects/            # Project-related components
β”‚   β”‚   β”œβ”€β”€ tasks/               # Task-related components
β”‚   β”‚   β”œβ”€β”€ workspace/           # Workspace components
β”‚   β”‚   β”œβ”€β”€ member/              # Member components
β”‚   β”‚   β”œβ”€β”€ responsive/          # Responsive utilities
β”‚   β”‚   β”œβ”€β”€ loading/             # Loading components
β”‚   β”‚   β”œβ”€β”€ error/               # Error components
β”‚   β”‚
β”‚   β”œβ”€β”€ feature/                 # Feature modules
β”‚   β”‚   β”œβ”€β”€ auth/                # Authentication logic & components
β”‚   β”‚   β”œβ”€β”€ workspaces/          # Workspace management
β”‚   β”‚   β”œβ”€β”€ projects/            # Project management
β”‚   β”‚   β”œβ”€β”€ tasks/               # Task management
β”‚   β”‚   └── members/             # Member management
β”‚   β”‚
β”‚   β”œβ”€β”€ hooks/                   # Custom React hooks
β”‚   β”œβ”€β”€ lib/                     # Utility functions & configurations
β”‚   β”œβ”€β”€ validations/             # Zod validation schemas
β”‚   └── config.ts                # App configuration
β”‚
β”œβ”€β”€ public/                      # Static assets
β”œβ”€β”€ .env                         # Environment variables (not in git)
β”œβ”€β”€ .env.example                 # Environment variables template
β”œβ”€β”€ .gitignore                   # Git ignore rules
β”œβ”€β”€ components.json              # Shadcn UI configuration
β”œβ”€β”€ next.config.mjs              # Next.js configuration
β”œβ”€β”€ tailwind.config.ts           # Tailwind CSS configuration
β”œβ”€β”€ tsconfig.json                # TypeScript configuration
β”œβ”€β”€ package.json                 # Dependencies and scripts
└── README.md                    # This file

πŸš€ Getting Started

Prerequisites

  • Node.js: Version 22.x or higher
  • npm or yarn or pnpm
  • Appwrite Account: Create an account at appwrite.io

Installation

  1. Clone the repository

    git clone https://github.com/mandouro-22/tasky.git
    cd tasky
  2. Install dependencies

    npm install
  3. Set up Appwrite

    • Create a new project in Appwrite Console
    • Create a database with the following collections:
      • Workspaces
      • Members
      • Projects
      • Tasks
    • Create a storage bucket for images
    • Configure authentication providers (Email/Password, OAuth)
  4. Configure environment variables

    • Copy .env.example to .env
    cp .env.example .env
    • Fill in your Appwrite credentials:
      • NEXT_PUBLIC_APPWRITE_ENDPOINT: Your Appwrite endpoint
      • NEXT_PUBLIC_APPWRITE_PROJECT: Your project ID
      • NEXT_PUBLIC_APPWRITE_DATABASE_ID: Your database ID
      • NEXT_PUBLIC_APPWIRTE_WORKSPACE_ID: Workspaces collection ID
      • NEXT_PUBLIC_APPWIRTE_MEMBERS_ID: Members collection ID
      • NEXT_PUBLIC_APPWIRTE_PROJECTS_ID: Projects collection ID
      • NEXT_PUBLIC_APPWIRTE_TASKS_ID: Tasks collection ID
      • IMAGE_BUCKET_ID: Storage bucket ID for images
      • NEXT_PUBLIC_APP_URL: Your app URL (http://localhost:3000/ for development)
  5. Run the development server

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

Build for Production

npm run build
npm start

πŸ“ Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm start - Start production server
  • npm run lint - Run ESLint

πŸ” Environment Variables

See .env.example for all required environment variables. Make sure to never commit your .env file to version control.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is private and proprietary.

πŸ™ Acknowledgments


Made with ❀️ using Next.js and Appwrite

About

Project Management app with authentication (GitHub, Google), workspace, projects, members, and tasks (table, kanban, calendar views). Built with Hono, Appwrite, Next.js, React Big Calendar, React Hook Form, Zod, and Shadcn UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages