A comprehensive Next.js frontend application for managing tasks, shifts, attendance, and team workflows. Built with modern React patterns, TypeScript, and Tailwind CSS.
- Role-based access control (Admin, Manager, Staff)
- JWT-based authentication with localStorage persistence
- Protected routes and permission-based UI rendering
- Task Templates: Create reusable task templates with custom fields
- Task Assignment: Assign tasks to individuals, teams, or roles
- Task Completion: Staff can complete tasks with photo/note proof
- Task Review: Managers can review and grade completed tasks
- Ad-Hoc Tasks: Create one-time tasks without templates
- Shift Scheduling: Create and manage employee shifts
- Break Management: Schedule and track breaks
- Time Clock: Clock in/out with location verification
- Attendance Tracking: Monitor attendance and punctuality
- Performance Reports: Track task completion and attendance rates
- Visual Charts: Interactive charts using Recharts
- Data Export: Export reports to CSV format
- Custom Filters: Filter reports by date, location, department
- Dispute Submission: Staff can dispute failed task grades
- Dispute Resolution: Managers can approve/reject disputes
- Audit Trail: Track all dispute activities
- Attendance Rules: Configure grace periods and thresholds
- Notification Settings: Email and SMS notification preferences
- Scoring System: Customize penalties and scoring rules
- Data Management: Configure data retention policies
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI primitives
- Forms: React Hook Form with Zod validation
- State Management: Zustand
- Data Fetching: TanStack Query
- Charts: Recharts
- Icons: Lucide React
- Notifications: Sonner
- Node.js 18+
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd shiftiq- Install dependencies:
npm install- Run the development server:
npm run dev- Open http://localhost:3000 in your browser.
The application includes demo accounts for testing:
- Admin: admin@shiftiq.com / password
- Manager: manager@shiftiq.com / password
- Staff: staff@shiftiq.com / password
├── app/ # Next.js App Router pages
│ ├── dashboard/ # Dashboard page
│ ├── tasks/ # Task management
│ ├── templates/ # Task templates
│ ├── assign/ # Task assignment
│ ├── reviews/ # Task reviews
│ ├── shifts/ # Shift management
│ ├── clock/ # Time clock
│ ├── disputes/ # Dispute management
│ ├── reports/ # Reports & analytics
│ └── settings/ # System settings
├── components/ # Reusable components
│ ├── ui/ # Base UI components
│ ├── layout/ # Layout components
│ ├── tasks/ # Task-related components
│ ├── shifts/ # Shift-related components
│ ├── reports/ # Report components
│ └── ...
├── lib/ # Utilities and configurations
│ ├── types.ts # TypeScript type definitions
│ ├── store.ts # Zustand store
│ └── utils.ts # Utility functions
└── ...
- Admin: Full system access
- Manager: Task assignment, review, shift management
- Staff: Task completion, time clock, dispute submission
- Admin creates task templates
- Manager assigns tasks to staff
- Staff completes tasks with proof
- Manager reviews and grades tasks
- Staff can dispute failed grades
- Manager creates shifts with breaks
- Staff clock in/out for shifts
- System tracks attendance and punctuality
- Reports show attendance metrics
- Mock data is used for demonstration
- All API calls are placeholder implementations
- State management handles UI updates
- Forms use validation with error handling
- Create new page in
app/directory - Add components in
components/directory - Update types in
lib/types.ts - Add navigation links in sidebar
- Update role permissions in store
- Uses Tailwind CSS for styling
- Custom color scheme defined in
tailwind.config.js - Responsive design for mobile and desktop
- Dark mode support available
- Global state managed with Zustand
- Form state handled by React Hook Form
- Server state managed by TanStack Query
- Local storage for authentication persistence
npm run build
npm startCreate a .env.local file for environment-specific configurations:
NEXT_PUBLIC_API_URL=http://localhost:3000/api
- 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.
For support and questions, please contact the development team or create an issue in the repository.