A full-featured project management application inspired by Jira, built with Next.js 14, Appwrite, and Hono. Manage workspaces, projects, and tasks with an intuitive interface featuring multiple views, drag-and-drop Kanban boards, and real-time analytics.
- Authentication — Email/password login and sign-up, plus OAuth with GitHub and Google
- Workspaces — Create and manage isolated workspaces with invite-based collaboration
- Projects — Organize work into projects within each workspace, complete with custom image uploads
- Task Management — Full CRUD for tasks with assignees, due dates, descriptions, and status tracking
- Multiple Views — Switch between Table, Kanban Board, and Calendar views for tasks
- Kanban Drag & Drop — Reorder tasks and change statuses by dragging cards across columns
- Advanced Filtering — Filter tasks by status, assignee, project, and due date
- Analytics Dashboard — Visual charts and metrics for workspace and project-level insights
- Member Management — Role-based access control (Admin / Member) with invite links
- Responsive Design — Mobile-friendly layout with a collapsible sidebar and bottom drawer modals
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Language | TypeScript |
| Backend / BaaS | Appwrite (Auth, Database, Storage) |
| API Layer | Hono (lightweight API routes with Zod validation) |
| Data Fetching | TanStack React Query |
| UI Components | Radix UI / shadcn/ui |
| Styling | Tailwind CSS |
| Charts | Recharts |
| Calendar | React Big Calendar |
| Drag & Drop | @hello-pangea/dnd |
| Forms | React Hook Form + Zod |
| Runtime | Bun |
git clone https://github.com/BhushanLagare7/jira.git
cd jirabun install
# or
npm installCreate the following resources in your Appwrite project:
- Database with collections for
workspaces,projects,tasks, andmembers - Storage bucket for workspace/project images
- OAuth providers (GitHub and/or Google) — configure in Appwrite Console → Auth → Settings
Create a .env.local file in the project root:
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
NEXT_PUBLIC_APPWRITE_PROJECT=<your-project-id>
NEXT_PUBLIC_APPWRITE_DATABASE_ID=<your-database-id>
NEXT_PUBLIC_APPWRITE_WORKSPACES_ID=<workspaces-collection-id>
NEXT_PUBLIC_APPWRITE_MEMBERS_ID=<members-collection-id>
NEXT_PUBLIC_APPWRITE_PROJECTS_ID=<projects-collection-id>
NEXT_PUBLIC_APPWRITE_TASKS_ID=<tasks-collection-id>
NEXT_PUBLIC_APPWRITE_IMAGES_BUCKET_ID=<images-bucket-id>
NEXT_APPWRITE_KEY=<your-appwrite-api-key>bun dev
# or
npm run devOpen http://localhost:3000 to see the app.
src/
├── app/ # Next.js App Router pages & layouts
│ ├── (auth)/ # Sign-in / Sign-up pages
│ ├── (dashboard)/ # Main dashboard with workspace views
│ ├── (standalone)/ # Standalone pages (create workspace, settings)
│ └── api/ # API route handler (Hono)
├── components/ # Shared UI components (sidebar, navbar, modals)
│ └── ui/ # shadcn/ui primitives (button, dialog, etc.)
├── features/ # Feature-based modules
│ ├── auth/ # Authentication (login, register, OAuth, sessions)
│ ├── workspaces/ # Workspace CRUD, invite system, settings
│ ├── projects/ # Project CRUD and analytics
│ ├── tasks/ # Task CRUD, Kanban, Calendar, Table views
│ └── members/ # Member management and roles
├── hooks/ # Shared custom React hooks
└── lib/ # Utilities (Appwrite clients, middleware, helpers)
| Command | Description |
|---|---|
bun dev |
Start development server |
bun run build |
Build for production |
bun start |
Start production server |
bun run lint |
Run ESLint |
Contributions are welcome! To get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source. See the LICENSE file for details.