A collaborative project management & gamified habit tracking platform
Forge your habits. Ship your projects. Together.
TaskForge is a full-stack productivity web application that unifies two workflows in one sleek, dark-mode interface:
- Collaborative Task Management — Create projects, invite teammates, assign tasks, set priorities & due dates, and track real-time progress with live activity feeds.
- Gamified Habit Tracking — Build personal habits with streaks, XP, levels, and achievement badges to stay consistent every day.
| Feature | Description |
|---|---|
| Projects | Create and manage multiple projects per workspace |
| Members & Roles | Invite teammates as admin or member via email |
| Task Board | Kanban-style tasks with To Do, In Progress, Done statuses |
| Priorities | Mark tasks as High, Medium, or Low priority |
| Due Dates | Assign deadlines to keep work on track |
| Activity Feed | Real-time log of every team action |
| Email Invitations | Invite users who auto-join on account creation |
| Feature | Description |
|---|---|
| Daily Habits | Create habits with custom emoji, color & category |
| Streaks | Track consecutive completion days with 🔥 streak counters |
| XP & Levels | Earn 10 XP per completion and level up |
| Achievements | Unlock badges (Getting Started, Week Warrior, Consistency King) |
| Confetti 🎉 | Animated celebration on every habit completion |
| Command Center | Dashboard combining projects, activity feed, and today's habits |
- Email/password authentication via Supabase Auth
- Row Level Security (RLS) — users can only access their own data and projects they are members of
- Auto-profile creation on signup with randomized avatar color
- Middleware-protected routes (workspace requires active session)
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router, Server Components) |
| Language | TypeScript 5 |
| Database & Auth | Supabase (PostgreSQL + Realtime + Auth) |
| Styling | Tailwind CSS 3 |
| Icons | Lucide React |
| Charts | Recharts |
| Animations | canvas-confetti |
taskforge/
├── src/
│ ├── app/
│ │ ├── (workspace)/ # Protected routes (requires login)
│ │ │ ├── dashboard/ # Command Center — habits + projects overview
│ │ │ ├── habits/ # Personal habit management
│ │ │ ├── projects/[id]/ # Individual project board & members
│ │ │ └── layout.tsx # Workspace shell with sidebar navigation
│ │ ├── auth/ # Auth callback handler
│ │ ├── login/ # Sign in / Sign up page
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Landing / redirect
│ ├── components/
│ │ └── layout/ # Shared UI components (sidebar, etc.)
│ ├── hooks/ # Custom React hooks
│ ├── lib/
│ │ ├── supabase/ # Supabase client (browser + server + middleware)
│ │ └── habits/ # Streak calculation logic
│ └── middleware.ts # Auth middleware for route protection
├── supabase_schema.sql # Full database schema with RLS policies & triggers
├── .env.example # Environment variable template
└── package.json
- Node.js 18+
- A free Supabase account
git clone https://github.com/Shadow-Protectors/TaskForge.git
cd TaskForgenpm install- Create a new project at supabase.com
- Go to SQL Editor and run the full contents of
supabase_schema.sql- This creates all tables, RLS policies, triggers, and enables Realtime
- Go to Settings → API and copy your Project URL and anon public key
cp .env.example .envOpen .env and fill in your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=https://your-project-ref.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-public-key-herenpm run devOpen http://localhost:3000 — sign up and start forging! ⚡
The supabase_schema.sql file sets up the full database with a single command. Here is an overview:
profiles → Extends Supabase Auth users (name, email, avatar_color)
projects → Team workspaces owned by a user
project_members → Many-to-many: users ↔ projects (role: admin | member)
project_invitations → Email-based pending invitations
tasks → Cards with title, priority, status, due_date
task_assignments → Many-to-many: tasks ↔ users
activity_log → Timestamped audit trail per project
habits → Personal daily habits (emoji, color, category)
completions → Daily habit check-ins (unique per user/habit/date)
Key behaviors (via triggers):
- 🔑 New user signup → auto-creates profile, auto-joins any pending project invitations
- 🏗️ New project created → creator is automatically added as
adminmember
| Variable | Description |
|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Your Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Your Supabase anonymous public key |
⚠️ Never commit your.envfile. It is excluded by.gitignore. Only.env.example(with placeholder values) is tracked.
This project is licensed under the MIT License.
Made with ❤️ by the Shadow Protectors team