A modern, full-featured project management and task tracking platform built with React and TypeScript. TaskUno helps teams organize tasks, manage projects, and collaborate effectively with an intuitive Kanban board interface.
🌐 Live Demo: https://task-uno.vercel.app/
- About
- Features
- Tech Stack
- Getting Started
- Project Structure
- Key Features Explained
- Environment Variables
- Available Scripts
- Contributing
- Author
TaskUno is a comprehensive project management platform designed to help teams streamline their workflow. It provides visual task management through Kanban boards, project organization, team collaboration features, and role-based access control. Built with modern web technologies, TaskUno offers a smooth, responsive user experience across all devices.
- Task Management: Create, assign, and track tasks with status updates
- Project Organization: Organize tasks into projects with detailed project views
- Kanban Board: Visual drag-and-drop interface for task management
- Team Collaboration: Invite team members, assign tasks, and track progress
- Role-Based Access: Different permissions for Product Owners, Developers, and Admins
- Scheduler View: Calendar-based view for task scheduling
- Organization Management: Manage teams and organizational structure
-
✅ User Authentication & Authorization
- Secure login and registration
- JWT-based authentication
- Role-based access control (Product Owner, Developer, Admin)
- Protected routes
-
✅ Task Management
- Create, update, and delete tasks
- Assign tasks to team members
- Set due dates and priorities
- Task status tracking (To Do, In Progress, In Review, Done, Blocked)
- Detailed task view with full information
-
✅ Project Management
- Create and manage multiple projects
- Project detail pages
- Link tasks to projects
- Project-based task filtering
-
✅ Kanban Board
- Drag-and-drop task management
- Visual workflow representation
- Status-based columns
- Real-time updates
-
✅ Scheduler View
- Calendar-based task visualization
- Monthly view with task distribution
- Easy navigation between months
-
✅ Team Collaboration
- Invite users to organization
- View organization structure
- Developer and Product Owner management
- User profile management
-
✅ Admin Features
- View all tasks across organization
- Manage all users
- Administrative dashboard
- 🎨 Modern Design: Beautiful gradient backgrounds and smooth animations
- 📱 Responsive: Works seamlessly on desktop, tablet, and mobile devices
- ⚡ Fast Performance: Optimized with React best practices
- 🎭 Animations: Smooth page transitions using Framer Motion
- 🔔 Notifications: Toast notifications for user actions
- 🌙 Dark Theme: Eye-friendly dark color scheme
- React 18.2.0 - UI library
- TypeScript 4.9.5 - Type safety
- React Router DOM 6.6.1 - Client-side routing
- Redux Toolkit 1.9.1 - State management
- React Redux 8.0.5 - React bindings for Redux
- Tailwind CSS 3.2.4 - Utility-first CSS framework
- Framer Motion 10.16.4 - Animation library
- React Beautiful DnD 13.1.1 - Drag and drop for Kanban
- React Awesome Slider 4.1.0 - Image carousel
- React Hook Form 7.41.1 - Form handling
- React Draft WYSIWYG 1.15.0 - Rich text editor
- Axios 1.2.1 - API requests with interceptors
- Day.js 1.11.7 - Date manipulation
- React Toastify 9.1.1 - Toast notifications
- React Scroll 1.9.3 - Smooth scrolling
- Node.js (v14 or higher)
- npm or yarn
- Backend API running (see TaskUno Backend)
-
Clone the repository
git clone https://github.com/yourusername/taskuno_frontend.git cd taskuno_frontend -
Install dependencies
npm install # or yarn install -
Configure environment variables
Create a
.envfile in the root directory:REACT_APP_API_URL=http://localhost:8000
-
Start the development server
npm start # or yarn start -
Open your browser
Navigate to http://localhost:3000
taskuno_frontend/
├── public/
│ ├── index.html
│ ├── favicon.ico
│ └── manifest.json
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── AnimatedRoutes.tsx
│ │ ├── Footer.tsx
│ │ ├── Header.tsx
│ │ ├── Loader.tsx
│ │ ├── PrivateRoute.tsx
│ │ ├── ProfileDropdown.tsx
│ │ ├── ProjectCard.tsx
│ │ ├── SearchableDropdown.tsx
│ │ └── WorkflowChart.tsx
│ ├── features/ # Redux slices and services
│ │ ├── admin/
│ │ ├── auth/
│ │ ├── organization/
│ │ ├── projects/
│ │ └── tasks/
│ ├── hooks/ # Custom React hooks
│ │ ├── redux.ts
│ │ └── useAuthStatus.ts
│ ├── pages/ # Page components
│ │ ├── admin/
│ │ │ ├── AllTasks.tsx
│ │ │ └── AllUsers.tsx
│ │ ├── AddProject.tsx
│ │ ├── AddTask.tsx
│ │ ├── Home.tsx
│ │ ├── InviteUser.tsx
│ │ ├── Kanban.tsx
│ │ ├── Login.tsx
│ │ ├── ProjectDetail.tsx
│ │ ├── Projects.tsx
│ │ ├── Register.tsx
│ │ ├── Scheduler.tsx
│ │ ├── TaskDetail.tsx
│ │ ├── ViewOrganization.tsx
│ │ └── ViewProfile.tsx
│ ├── types/ # TypeScript type definitions
│ │ └── index.ts
│ ├── utils/ # Utility functions
│ │ ├── axiosInterceptor.ts
│ │ ├── roleCheck.ts
│ │ └── storage.ts
│ ├── App.tsx # Main app component
│ ├── index.tsx # Entry point
│ └── store.ts # Redux store configuration
├── package.json
├── tailwind.config.js
└── tsconfig.json
- Users can register as Product Owners or Admins
- Developers must be invited by Product Owners
- JWT tokens stored securely in localStorage
- Automatic token refresh mechanism
- Protected routes redirect to login if not authenticated
- Drag-and-drop tasks between status columns
- Visual representation of workflow
- Real-time status updates
- Task filtering and search
- Detailed task view on click
- Create projects with title and description
- Link tasks to specific projects
- View all projects in a grid layout
- Project detail pages with associated tasks
- Project-based task filtering
- Product Owner: Can create projects, tasks, and invite users
- Developer: Can view and update assigned tasks
- Admin: Full access including admin dashboard
- Invite users via email
- View organization structure
- See all developers and product owners
- Assign tasks to team members
Create a .env file in the root directory:
# API Configuration
REACT_APP_API_URL=http://localhost:8000For production, update REACT_APP_API_URL to your production API URL.
In the project directory, you can run:
Runs the app in development mode. Open http://localhost:3000 to view it in the browser.
Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance.
Launches the test runner in interactive watch mode.
Note: this is a one-way operation. Once you eject, you can't go back!
- Color Scheme: Dark theme with purple and blue gradients
- Typography: Clean, modern fonts with proper hierarchy
- Animations: Smooth page transitions and hover effects
- Responsive: Mobile-first design approach
- Accessibility: Semantic HTML and ARIA labels
- JWT token-based authentication
- Secure token storage in localStorage
- Automatic token refresh
- Protected routes with authentication checks
- Role-based access control
- CORS configuration
- Input validation and sanitization
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is private and proprietary.
Yash Jaiswal
- GitHub: @yashjaiswal5859
- LinkedIn: Yash Jaiswal
- Email: yashjaiswal88542@gmail.com
- Instagram: @yashjaiswal5859
- Built with React
- Styled with Tailwind CSS
- Animations by Framer Motion
- Icons and UI inspiration from various open-source projects
For support, email yashjaiswal88542@gmail.com or open an issue in the repository.
Made with ❤️ by Yash Jaiswal