This repository contains the code and documentation for the Intro to Software Engineering Group 6 project. The project focuses on developing Planora - a user-friendly, efficient, and AI-powered project management tool that supports both Kanban and Scrum methodologies.
Intro2SE_Group6/
├── frontend/ # React + Vite frontend application
│ ├── src/
│ │ ├── components/ # React UI components
│ │ │ ├── admin/ # Admin dashboard
│ │ │ ├── auth/ # Authentication pages
│ │ │ ├── chat/ # AI chat assistant
│ │ │ ├── dashboard/ # User dashboard
│ │ │ ├── kanban/ # Kanban board
│ │ │ ├── layout/ # Main layout
│ │ │ ├── notifications/ # Notification system
│ │ │ ├── project/ # Project details
│ │ │ ├── scrum/ # Scrum board
│ │ │ ├── settings/ # User settings
│ │ │ ├── trash/ # Trash management
│ │ │ ├── ui/ # shadcn/ui components
│ │ │ └── routes/ # Route guards
│ │ ├── contexts/ # React Context (Auth, App)
│ │ ├── hooks/ # Custom React hooks (13 hooks)
│ │ ├── lib/ # Supabase client, utilities
│ │ ├── services/ # Business logic services
│ │ │ ├── adminService.ts
│ │ │ ├── exportService.ts
│ │ │ └── projectActivityService.ts
│ │ ├── routes/ # Route definitions
│ │ ├── test/ # Unit & Integration tests
│ │ ├── types/ # TypeScript types
│ │ └── utils/ # Helper functions
│ ├── .env # Environment variables
│ ├── package.json
│ ├── vitest.config.ts # Vitest configuration
│ └── vite.config.ts
│
├── supabase/ # Supabase Backend
│ ├── functions/ # Edge Functions (AI services)
│ │ ├── chat/ # AI chat assistant
│ │ ├── enhance-description/ # Task description enhancement
│ │ ├── estimate-time/ # Time estimation
│ │ └── send-invitation-email/ # Email invitations
│ └── migrations/ # Database migrations
│
├── docs/ # Documentation
│ ├── analysis-and-design/
│ ├── management/
│ ├── requirements/
│ └── test/
│
├── vercel.json # Vercel deployment configuration
└── pa/ # Project assignments
- React 18.3.1 - Modern UI library with functional components and hooks
- TypeScript 5.x - Type-safe JavaScript for better development experience
- Vite 6.3.5 - Lightning-fast build tool and dev server
- React Router DOM 7.11.0 - Client-side routing with URL-based navigation
- Protected routes with authentication guards
- Admin routes with role-based access control
- Tailwind CSS 4.1.17 - Utility-first CSS framework
- Radix UI - Unstyled, accessible component primitives
- shadcn/ui - Re-usable component library built on Radix UI
- Lucide React - Beautiful icon library
- next-themes - Dark mode support
- Supabase - Backend-as-a-Service
- PostgreSQL database
- Authentication (Email, OAuth)
- Edge Functions (AI services)
- Row Level Security (RLS)
- Real-time subscriptions
- React Hooks - useState, useEffect, useRef for local state
- Context API - AppContext, AuthContext for global state
- Custom Hooks - useAuth, useProjects, useTasks, useSprints, useNotifications
- Sonner - Toast notifications
- React Day Picker - Date selection
- Recharts - Data visualization and charts
- Embla Carousel - Touch-friendly carousels
- React Resizable Panels - Draggable panel layouts
- React Markdown - Markdown rendering in AI chat
- Vaul - Drawer components
- React Hook Form 7.55.0 - Performant form validation
- Input OTP - One-time password input
- Vitest - Fast unit testing framework
- @testing-library/react - React component testing
- @testing-library/jest-dom - Custom Jest matchers
- jsdom - DOM environment for tests
- @vitejs/plugin-react-swc - Fast React refresh with SWC compiler
- PostCSS & Autoprefixer - CSS processing
- ESLint & Prettier - Code quality and formatting
- tsx - TypeScript execution for Node.js
- Node.js 18+ (recommended: Node 20 LTS)
- pnpm (recommended) or npm
- Supabase account for database and authentication
If you encounter script execution errors, run this in each new terminal:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypasscd frontend
pnpm install
pnpm devFrontend runs at: http://localhost:3000
Frontend (frontend/.env):
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm test |
Run unit tests with Vitest |
pnpm test:coverage |
Run tests with coverage report |
pnpm test:ui |
Run tests with Vitest UI |
The project uses Vitest for testing. Tests are located in frontend/src/test/.
# Run all tests
cd frontend
pnpm test
# Run tests with coverage
pnpm test:coverage
# Run tests with interactive UI
pnpm test:ui- Unit Tests: Service functions, utilities, hooks
- Integration Tests: Component interactions, form submissions
- Test Files:
*.test.tsor*.test.tsx
-
Push code to GitHub
-
Import to Vercel:
- Go to vercel.com
- Click "Add New Project"
- Import your GitHub repository
-
Configure Project:
- Root Directory:
frontend - Framework Preset: Vite (auto-detected)
- Build Command:
pnpm run build - Output Directory:
build
- Root Directory:
-
Add Environment Variables:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
-
Click Deploy
Note: The
vercel.jsonfile is already configured with SPA routing support.
- 🔐 User authentication (register, login, password recovery)
- 📊 Dashboard with project overview and statistics
- 📋 Kanban board for visual task management
- 🏃 Scrum board with sprint planning
- 👥 Project member management and invitations
- 💬 AI-powered chat assistant
- 🤖 AI task description enhancement
- ⏱️ AI time estimation for tasks
- 🗑️ Trash system for deleted projects/tasks
- 🔔 Real-time notifications
- 📤 Export data to PDF/Excel
- ⚙️ User settings and profile customization
- 🌙 Dark mode support
- 👨💼 User management dashboard
- 🛡️ Role-based access control
- 📈 System monitoring and analytics
- 📊 Activity timeline and logs
- ⚙️ System settings configuration
- Chat Assistant: Interactive AI helper for project management
- Description Enhancement: AI-powered task description improvement
- Time Estimation: Intelligent task duration prediction
- Email Invitations: Automated project invitation emails via Edge Function
MIT License