A clean, beginner-friendly task management application built with React, Redux Toolkit, and TypeScript.
Watch the full demo showing all features in action:
- Simple Login: Demo credentials for quick access
- User Registration: Easy signup process for developers and managers
- Role-based Access: Different permissions for different user types
- Create & Edit Tasks: Full task lifecycle management
- Time Tracking: Built-in timer and manual time entry
- Status Updates: Track progress from creation to completion
- Smart Filtering: Filter by status, priority, and assignee
- Task Overview: Visual statistics and progress tracking
- Trend Charts: Historical view of task activity
- Role-specific Views: Managers see team data, developers see personal tasks
- Frontend: React 18 with TypeScript
- State Management: Redux Toolkit (simplified structure)
- Styling: Tailwind CSS with Shadcn/ui components
- Charts: Recharts for data visualization
- Build Tool: Vite for fast development
- Icons: Lucide React
- Developer:
john.dev/dev123 - Manager:
alex.manager/mgr123
# Clone the repository
git clone <repository-url>
# Install dependencies
npm install
# Start development server
npm run devsrc/
├── components/ # React components
│ ├── ui/ # Reusable UI components (Shadcn)
│ ├── Dashboard.tsx # Main dashboard view
│ ├── TaskList.tsx # Task management interface
│ ├── TaskModal.tsx # Task creation/editing
│ └── TimeTrackingModal.tsx # Time tracking interface
├── store/ # Redux state management
│ ├── index.ts # Store configuration
│ ├── authSlice.ts # Authentication state
│ └── taskSlice.ts # Task and time tracking state
├── hooks/ # Custom React hooks
│ ├── redux.ts # Typed Redux hooks
│ └── useTaskFilters.ts # Local state for filters
├── data/ # Mock data and constants
│ └── mockData.ts # Sample users, tasks, and time entries
├── types/ # TypeScript type definitions
│ └── index.ts # Core type definitions
└── pages/ # Page components
└── Index.tsx # Main application page
- authSlice: User authentication and management
- taskSlice: Task CRUD operations and time tracking
- Local State: UI state managed with custom hooks
- Task Filtering: Smart filters with search functionality
- Time Tracking: Automatic timer and manual entry
- Role Permissions: Developers see assigned tasks, managers see everything
- Data Persistence: All data saved to localStorage
- TaskList: Main task management interface
- Dashboard: Analytics and overview
- TimeTrackingModal: Comprehensive time tracking
- TaskModal: Task creation and editing
- Authentication: Users log in → Redux stores user data
- Task Management: CRUD operations → Redux updates state → localStorage persistence
- Time Tracking: Timer/manual entry → Updates task time spent → Syncs with Redux
- Filtering: Local state manages UI filters → Computed from Redux data
- Colors: Professional blue/slate theme
- Typography: Clean, readable font hierarchy
- Layout: Responsive grid system
- Components: Consistent Shadcn/ui design language
- View assigned tasks only
- Track time on tasks
- Update task status (start work, request approval)
- Cannot create or delete tasks
- View all tasks and team members
- Create, edit, and delete tasks
- Assign tasks to developers
- Approve task completion
- Access team analytics
- Automatic Timer: Start/stop timer with descriptions
- Manual Entry: Add time manually with duration
- Task Integration: Time automatically updates task totals
- History: View all time entries per task
- Dashboard Integration: Time data visible in analytics
- Define types in
src/types/index.ts - Add Redux actions in appropriate slice
- Create focused components in
src/components/ - Use custom hooks for complex local state
- Update mock data if needed
- Keep components small and focused
- Use TypeScript strictly
- Follow Redux Toolkit patterns
- Maintain responsive design
- Write descriptive component names
- One component per file
- Logical file naming
- Clear folder structure
- Consistent import patterns
- Proper type definitions
- Node.js 16+ required
- All dependencies managed via npm
- Vite for build and development
- TypeScript for type safety
- Modify
tailwind.config.tsfor theme changes - Update
src/data/mockData.tsfor different sample data - Extend types in
src/types/index.tsfor new features
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
Built with ❤️ for learning and productivity