This a mini dashboard built with Next.js (App Router), TypeScript, shadcn/ui, TanStack Query, and external JWT-based API authentication.
It provides full CRUD management for projects with server-side search, filtering and pagination.
First, install the project dependencies.
npm installCreate a .env or .env.local file from .env.example.
NEXT_PUBLIC_API_URL=http://localhost:5000/api
NEXTAUTH_SECRET=your-secret # Generate with 'openssl rand -base64 32' command.
NEXTAUTH_URL=http://localhost:3000All the data are fetched from an external backend API. So, you need to run the backend before running the development server here. Make sure to properly set this env variable, otherwise the app won't work.
NEXT_PUBLIC_API_URL=http://localhost:5000/apiPlease, you need to check out the backend GitHub repository and follow the instructions to run it before proceeding.
You can finally run the development server:
npm run devOpen now http://localhost:3000 with your browser to see the result.
- JWT authentication via external API
- Session management using
next-auth - Secure API requests using Bearer token
- Protected routes
- Create projects
- Edit projects
- Delete projects (with confirmation dialog)
- View projects in data table
- Server-side search
- Server-side filtering by project status
- Debounced live search
- Optimistic UI updates via React Query
- Toast notifications (Sonner)
- Loading states without UI flicker
- Confirmation dialogs for destructive actions
Check out a live demo of the app deployed on Vercel Platform from the creators of Next.js.
Username: user@test.com
Password: Pass1234
