A modern admin dashboard built with Next.js, React, Tailwind CSS, and Recharts. It includes authenticated admin routes, server API endpoints, interactive tables, charts, optimistic UI updates, and a refined dashboard experience.
GitHub: https://github.com/nikmahla/Dashboard
https://dashboard-256xacra2-mahs-projects-ddae92ec.vercel.app
Note: The admin dashboard is protected and requires authentication for
/adminpages.
- Next.js 16 App Router with server and client components
- React 19.2.1 and Tailwind CSS v4
- Recharts-based KPI and inventory charts
- React Query for data fetching, caching, and optimistic updates
- API routes for auth, customers, inventory, orders, products, tasks, and users
- Authentication flows with login, logout, and protected admin pages
- Accessible modal dialogs, forms, tables, and dashboard components
- Jest + Testing Library test coverage for key components and auth routes
- Next.js 16.0.10
- React 19.2.1
- Tailwind CSS v4
- Recharts
- @tanstack/react-query
- Jest + Testing Library
- Vercel deployment
Install dependencies:
npm installRun the development server:
npm run devOpen http://localhost:3000 to view the application.
npm run dev- Start development servernpm run build- Create production buildnpm run start- Start production server after buildnpm run lint- Run ESLintnpm test- Run Jest testsnpm test -- --runInBand <file>- Run specific test files
Run all tests:
npm testRun targeted tests:
npm test -- --runInBand src/components/__tests__/KpiCard.test.tsxRecommended deployment platform: Vercel.
- Connect the GitHub repository to Vercel.
- Set the framework to Next.js.
- Use:
- Build command:
npm run build - Output directory:
.next
- Build command:
- Deploy.
npm run build- If dependency installation fails due to peer conflicts, the repository includes a
.npmrcsetting forlegacy-peer-deps=true. - The
/adminroutes require an authenticated session.
Contributions are welcome. If you want to improve the dashboard, please:
- Fork the repository.
- Create a feature branch.
- Open a pull request with a clear summary of your changes.