A full-stack team task management application built with React, Redux Toolkit, and Supabase.
- ✅ User Authentication - Register and login with email/password
- ✅ Team Management - Create teams, join teams via Team ID
- ✅ Task Management - Create, update status, and delete tasks
- ✅ Member Management - Add/remove team members (admin only)
- ✅ Role-based Access - Admin and Member roles
- ✅ Row Level Security - Secure data access with Supabase RLS
- React 18.2 - UI framework
- Vite 5.0 - Build tool & dev server
- Redux Toolkit - State management
- React Router 6.20 - Routing
- Tailwind CSS 3.3 - Styling
- Headless UI - Unstyled UI components
- React Hook Form - Form handling
- React Icons - Icon library
- Sonner - Toast notifications
- Supabase - Backend-as-a-Service (PostgreSQL database, auth, APIs)
- ESLint - Code linting
- PostCSS & Autoprefixer - CSS processing
- Moment.js - Date manipulation
- clsx - Conditional CSS classes
- Node.js 18+ installed
- A Supabase account and project
cd "Team Task Manager"
npm install- Create a new project in Supabase
- Go to the SQL Editor in your Supabase dashboard
- Copy the contents of
supabase-schema.sqland run it - Go to Project Settings > API and copy your:
- Project URL
- anon/public key
Create a .env file in the project root:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_keynpm run devThe app will open at http://localhost:3000
- profiles - User profiles (extends auth.users)
- teams - Team information
- team_members - Team membership with roles (admin/member)
- tasks - Tasks belonging to teams
- Users can only see teams they're members of
- Only team members can view/create/edit team tasks
- Only admins can add/remove team members
- Proper foreign key constraints
- Register - Create a new account
- Login - Sign in to your account
- Create Team - Click the + button to create a new team
- Share Team ID - Share your Team ID with others to let them join
- Join Team - Click the group icon to join an existing team by ID
- Create Tasks - Add tasks to your team
- Update Status - Change task status (Pending, In Progress, Completed)
- Manage Members - Admins can add/remove team members
src/
├── components/
│ ├── auth/ # Auth route guards
│ ├── members/ # Member management components
│ ├── tasks/ # Task components
│ └── teams/ # Team components
├── lib/
│ └── supabase.js # Supabase client
├── pages/
│ ├── auth/ # Login & Register pages
│ └── dashboard/ # Main dashboard
├── store/
│ ├── slices/ # Redux slices
│ └── store.js # Redux store configuration
├── App.jsx # Main app with routing
├── index.css # Global styles
└── main.jsx # Entry point
MIT