git clone git@github.com:minhajul-karim/acme-dashboard-nextjs.git
cd acme-dashboard-nextjspnpm install # or npm installCreate a .env file in the root directory and add the following:
POSTGRES_URL="postgres://user:***@host:port/database"
POSTGRES_URL_NON_POOLING="postgres://user:***@host:port/database"
POSTGRES_USER="user"
POSTGRES_HOST="host"
POSTGRES_PASSWORD="***"
POSTGRES_DATABASE="database"
AUTH_SECRET="***"pnpm dev # or npm run dev- Next.js (App Router)
- TypeScript
- Tailwind CSS for styling
- NextAuth.js for authentication
- PostgreSQL for storing data
- Secure authentication with NextAuth.js
- Protected routes with Middleware
- View invoices in a paginated table
- Create, edit, and delete invoices
- Dynamic analytics on collected, pending, total invoices & customers
- View latest invoices
- Debounced search using URL search params
- Pagination with state persistence
- Server Components for efficient data fetching
- Streaming & usage of skeletons for better loading states
- Custom
error.tsxfor handling route errors - 404 handling with
not-found.tsx - Server-side validation for forms
- Inline error display with React's
useActionState
The application is deployed on Vercel. You can access the live version here: https://acme-dashboard-nextjs-chi.vercel.app/
- Full CRUD functionality for customers
- Paginated and searchable customer list
- Dynamic customer details page
- Toast notifications for CRUD actions
- Email notifications for new invoices
- PDF reports generation
- Dark mode toggle with Tailwind CSS
Developed by Minhajul Karim as part of a learning project to master Next.js full-stack development.