Enterprise-level task management system built with Next.js 14, featuring real-time notifications, role-based authentication, and comprehensive project management capabilities.
Deploy Link: Coming Soon - Will be deployed on Vercel
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe development
- React 18 - UI library with latest features
- Tailwind CSS - Utility-first CSS framework
- Redux Toolkit - State management
- React Query - Server state management and caching
- React Hook Form - Form handling with validation
- Yup - Schema validation
- Lucide React - Modern icon library
- React Hot Toast - Notification system
- clsx - Conditional CSS classes
- date-fns - Date manipulation
- Microsoft SignalR - Real-time communication
- Axios - HTTP client
- js-cookie - Cookie management
- Jest - Testing framework
- React Testing Library - Component testing
- ESLint - Code linting
- TypeScript - Static type checking
src/
βββ app/ # Next.js App Router pages
β βββ auth/ # Authentication pages
β βββ dashboard/ # Dashboard page
β βββ projects/ # Project management pages
β βββ tasks/ # Task management pages
β βββ profile/ # User profile pages
β βββ layout.tsx # Root layout
βββ components/ # Reusable UI components
β βββ auth/ # Authentication components
β βββ common/ # Shared components (Header, Sidebar, etc.)
β βββ projects/ # Project-specific components
β βββ tasks/ # Task-specific components
β βββ ui/ # Base UI components
βββ lib/ # Utility libraries
β βββ api.ts # API configuration and endpoints
β βββ auth.ts # Authentication utilities
β βββ utils.ts # General utilities
βββ store/ # Redux store configuration
β βββ slices/ # Redux slices
β β βββ authSlice.ts # Authentication state
β β βββ tasksSlice.ts # Tasks state
β β βββ projectsSlice.ts # Projects state
β β βββ notificationsSlice.ts # Notifications state
β βββ store.ts # Store configuration
βββ types/ # TypeScript type definitions
βββ index.ts # Shared types and interfaces
- Pages: Route-level components using Next.js App Router
- Components: Reusable UI components with TypeScript props
- Hooks: Custom React hooks for business logic
- Services: API service layer with error handling
- Store: Centralized state management with Redux Toolkit
- JWT Token Management - Secure authentication with refresh tokens
- Role-based Access Control - Admin, Manager, Developer roles
- Protected Routes - Route guards based on authentication status
- Password Security - Bcrypt hashing integration
- SignalR Integration - Real-time notifications and updates
- Live Task Updates - Instant task status changes
- Real-time Notifications - Push notifications for task assignments
- Live Project Updates - Real-time project member activities
- Task Logging System - Comprehensive activity tracking
- Priority Management - Low, Medium, High, Critical priorities
- Status Tracking - ToDo, InProgress, Done, Cancelled states
- Due Date Management - Task deadline tracking
- Assignment System - Multi-user task assignment
- Unit Testing - Jest and React Testing Library
- Component Testing - Isolated component tests
- Type Safety - Full TypeScript coverage
- Code Quality - ESLint configuration
- Responsive Design - Mobile-first approach
- Dark/Light Mode - Theme switching capability
- Toast Notifications - User-friendly feedback system
- Loading States - Skeleton loaders and spinners
- Form Validation - Real-time form validation with Yup
- Code Splitting - Automatic route-based splitting
- Image Optimization - Next.js Image component
- Caching Strategy - React Query for server state caching
- Bundle Optimization - Tree shaking and minification
graph TB
A[Next.js Frontend] --> B[API Layer]
B --> C[.NET Backend API]
C --> D[MongoDB Database]
A --> E[SignalR Hub]
E --> C
A --> F[Redux Store]
F --> G[Auth Slice]
F --> H[Tasks Slice]
F --> I[Projects Slice]
F --> J[Notifications Slice]
K[JWT Tokens] --> A
L[Role-based Auth] --> A
- Node.js 18+
- npm or yarn
- Git
-
Clone the repository
git clone https://github.com/ahmetcdevelopment/task-management-frontend.git cd task-management-frontend -
Install dependencies
npm install
-
Environment Setup
cp .env.example .env.local # Configure your environment variables -
Run development server
npm run dev
-
Open browser
http://localhost:3000
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run test- Run testsnpm run test:watch- Run tests in watch mode
NEXT_PUBLIC_API_URL=http://localhost:5000/api
NEXT_PUBLIC_SIGNALR_URL=http://localhost:5000/taskHubThe frontend integrates with a .NET 8 Web API backend featuring:
- RESTful API endpoints
- JWT authentication
- SignalR real-time communication
- MongoDB data persistence
- 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 licensed under the MIT License - see the LICENSE file for details.
Ahmet C Development
- GitHub: @ahmetcdevelopment
β Star this repository if you find it helpful!