A modern, full-stack task management application with AI-style insights built with React, TypeScript.
- Task Management: Create, update, and track tasks with title, description, priority, and due dates
- Smart Filtering: Filter tasks by status (To Do, In Progress, Completed) and priority (High, Medium, Low)
- Flexible Sorting: Sort tasks by due date, creation date, or priority
- Smart Insights: Get AI-style analytics showing task distribution, overdue items, and workload summaries
- Real-time Updates: Instant feedback with optimistic UI updates
- Responsive Design: Beautiful interface that works on all devices
- Modern UI: Clean, professional design with smooth animations
- React 18 with TypeScript for type-safe development
- Vite for lightning-fast builds
- Tailwind CSS for utility-first styling
- shadcn/ui for beautiful, accessible components
- React Query (TanStack Query) for efficient data fetching and caching
- date-fns for date formatting and manipulation
- PostgreSQL database with Row Level Security
- REST API auto-generated by Supabase
- Node.js 18+ and npm installed (Install with nvm)
- Git for version control
git clone <YOUR_GIT_URL>
cd <YOUR_PROJECT_NAME>npm installnpm run devThe application will open at http://localhost:8080
βββ src/
β βββ components/ # React components
β β βββ TaskForm.tsx # Task creation form
β β βββ TaskCard.tsx # Individual task display
β β βββ TaskList.tsx # Task list with filters
β β βββ InsightsPanel.tsx # Analytics dashboard
β βββ pages/ # Page components
β β βββ Index.tsx # Main application page
β βββ integrations/ # Backend integrations
β β βββ supabase/ # Supabase client and types
β βββ components/ui/ # shadcn/ui components
β βββ lib/ # Utility functions
βββ supabase/ # Database migrations
βββ DECLARATION.md # No-AI declaration
βββ notes.md # Design decisions and improvements
- id: UUID (Primary Key)
- title: TEXT (Required)
- description: TEXT (Optional)
- priority: ENUM ('low', 'medium', 'high')
- status: ENUM ('todo', 'in-progress', 'completed')
- due_date: TIMESTAMP WITH TIME ZONE
- created_at: TIMESTAMP WITH TIME ZONE (Auto)
- updated_at: TIMESTAMP WITH TIME ZONE (Auto-updated)idx_tasks_statuson status columnidx_tasks_priorityon priority columnidx_tasks_due_dateon due_date column
- GET /tasks - List all tasks with filtering support
- POST /tasks - Create a new task
- PATCH /tasks/:id - Update task status or priority
- DELETE /tasks/:id - Delete a task
The insights panel computes analytics using rule-based logic:
- Total Task Count: All tasks in the system
- Open Tasks: Tasks not marked as completed
- Completed Tasks: Successfully finished tasks
- High Priority Count: Urgent tasks requiring attention
- Due Soon: Tasks due within 2 days
- Overdue: Tasks past their due date
- Priority Distribution: Dominant priority level across all tasks
The system generates natural language summaries like:
"You have 12 open tasks, with 3 marked as high priority.
β οΈ 2 tasks are overdue. Most tasks are medium priority."
- Primary: Indigo blue (#5865f2) - Professional and trustworthy
- High Priority: Red - Urgent attention needed
- Medium Priority: Amber - Moderate importance
- Low Priority: Emerald - Can be scheduled flexibly
- Smooth transitions on hover states
- Card elevation changes for depth
- Focus states with ring colors for accessibility
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint- Fill in the task title (required)
- Add an optional description
- Select priority level (Low, Medium, High)
- Choose initial status (To Do, In Progress, Completed)
- Pick a due date from the calendar
- Click "Create Task"
- Change Status: Click the status dropdown on any task card
- Update Priority: Click the priority dropdown
- Filter Tasks: Use the status and priority filters above the task list
- Sort Tasks: Choose from various sorting options (due date, creation date, priority)
The insights panel at the top shows:
- Overall task statistics
- Smart summary of your workload
- Alerts for overdue or due-soon tasks
- Priority distribution analysis
Current Implementation: Public RLS policies for demo purposes
Production Recommendations:
- Add user authentication (email/password or OAuth)
- Implement user-specific RLS policies
- Add rate limiting on API endpoints
- Enable server-side input validation
- Implement CSRF protection
- Add audit logging for task changes
- User authentication with JWT
- Backend API with proper validation
- Pagination for large task lists
- Full-text search across tasks
- Task tags and categories
- Subtasks and task hierarchy
- Timeline chart visualization
- Email notifications for due tasks
- Recurring tasks
- File attachments
- Collaboration features
- Activity log
See notes.md for detailed improvement plans.
This project is part of a technical assessment.