A modern, responsive task management platform built with React, TypeScript, and Tailwind CSS. KaziFlow (from Swahili "kazi" meaning work + "flow") makes your workflow effortless. This frontend application integrates seamlessly with a Node.js + Express + PostgreSQL backend API.
- User registration with email verification
- Secure login with JWT tokens
- Password reset functionality
- Protected routes and automatic token management
- Create, edit, and delete tasks
- Task completion tracking
- Time-based task scheduling (start/end dates)
- Rich task descriptions with notes
- Create and manage multiple boards
- Collaborative board sharing
- Role-based permissions (Owner, Editor, Viewer)
- Member management with invite system
- Overview of all boards and tasks
- Upcoming tasks widget
- Activity statistics
- Quick access to recent boards
- Fully responsive design (mobile-first)
- Clean, professional interface
- Smooth animations and transitions
- Accessibility-compliant design
- Dark mode support (optional)
- Frontend: React 18, TypeScript, Vite
- Styling: Tailwind CSS, Lucide React Icons
- Routing: React Router v6
- State Management: React Context + useReducer
- HTTP Client: Fetch API with custom ApiClient
- Date Handling: date-fns
- Build Tool: Vite
- Node.js 18+ and npm
- Backend API running (Node.js + Express + PostgreSQL)
- Clone the repository:
git clone <repository-url>
cd task-management-frontend
- Install dependencies:
npm install
- Configure environment variables:
cp .env.example .env
Edit .env
and set your API URL:
VITE_API_URL=http://localhost:5000/api
- Start the development server:
npm run dev
The application will be available at http://localhost:5173
The application uses environment variables for configuration:
VITE_API_URL
: Backend API base URL (default: http://localhost:5000/api)VITE_NODE_ENV
: Environment mode (development/production)
The frontend integrates with the following backend endpoints:
POST /auth/register
- User registrationPOST /auth/login
- User loginPOST /auth/verify-email
- Email verificationPOST /auth/request-password-reset
- Request password resetPOST /auth/reset-password
- Reset password
GET /boards
- List user's boardsPOST /boards
- Create new boardGET /boards/:id
- Get board detailsPUT /boards/:id
- Update boardDELETE /boards/:id
- Delete board
POST /boards/:id/members
- Add memberPUT /boards/:id/members/:userId
- Update member roleDELETE /boards/:id/members/:userId
- Remove member
GET /boards/:id/tasks
- Get board tasksPOST /boards/:id/tasks
- Create taskGET /tasks/:id
- Get task detailsPUT /tasks/:id
- Update taskDELETE /tasks/:id
- Delete task
src/
βββ components/ # React components
β βββ auth/ # Authentication components
β βββ board/ # Board management components
β βββ dashboard/ # Dashboard components
β βββ layout/ # Layout components (Navbar, etc.)
β βββ ui/ # Reusable UI components
βββ contexts/ # React contexts
βββ services/ # API services
βββ types/ # TypeScript type definitions
βββ config/ # Configuration files
βββ App.tsx # Main application component
LoginForm
- User login with validationRegisterForm
- User registration with email verificationEmailVerification
- Email verification handlerForgotPassword
- Password reset requestResetPassword
- Password reset with tokenProtectedRoute
- Route protection wrapper
BoardList
- Display all user boardsBoardDetail
- Individual board view with tasksBoardMemberManagement
- Manage board members and roles
- Task creation and editing modals
- Task completion tracking
- Task filtering and sorting
Button
- Customizable button componentInput
- Form input with validationModal
- Reusable modal componentCard
- Content card componentToast
- Notification system
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run lint
- Run ESLint
The project uses:
- ESLint for code linting
- TypeScript for type safety
- Prettier for code formatting (recommended)
In development mode, all API requests and responses are logged to the console for debugging purposes.
npm run build
The built files will be in the dist/
directory.
Set the following environment variables in your production environment:
VITE_API_URL=https://your-api-domain.com/api
The application can be deployed to:
- Vercel
- Netlify
- AWS S3 + CloudFront
- Any static hosting service
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.# taskflow