Track, triage and resolve project issues — a Next.js 16 issue tracker with an analytics dashboard, a Kanban board and an advanced data table.
Table of Contents
Issue Tracker is an issue-tracking product, not a tutorial project: it ships an analytics dashboard, three switchable issue views, and a full issue-detail workflow on top of a Next.js 16 / React 19 App Router stack. It's built for a small team or a solo maintainer who wants Linear-style triage — filters, bulk actions, a Kanban board, saved views — without standing up a hosted tool. It's a production-shaped application, typed and tested throughout, rather than a tutorial CRUD demo.
- Analytics dashboard — four KPI cards, with sparklines and period-over-period deltas where the data supports them, six charts (status, priority, throughput, completion, ageing and workload), a Due This Week panel and a recent-activity feed.
- Three issue views, switched with
?view=:- a TanStack Table data table with faceted filters, column visibility, multi-row selection and bulk actions including CSV export;
- a dnd-kit Kanban board with optimistic status changes;
- a mobile-first card list.
- Issue detail — a two-column layout with in-place metadata editing, labels, due dates, comments, and a merged comment/activity timeline.
- Notifications with a polled unread badge.
- Saved views for reusable filter/sort combinations.
- A ⌘K command palette and keyboard shortcuts with a help dialog.
- Light/dark theming.
- A Vitest suite covering the app's business logic and components.
- Node.js
>=20.19.0 - pnpm
- Docker Desktop (for the bundled MySQL)
- A Google OAuth client (for sign-in)
git clone https://github.com/omunite215/Project_Issue-Tracker.git
cd Project_Issue-Tracker
pnpm install
# Copy the example env and fill it in. MYSQL_ROOT_PASSWORD and the password
# inside DATABASE_URL must match — see the comments in .env.example.
cp .env.example .env
# MySQL 9.4 on host port 3307 (3306 is often already taken locally)
docker compose up -d
pnpm db:migrate
pnpm db:seed
pnpm devThe dashboard at / and the issue list at /issues are readable without signing in; sign in
to unlock creating and editing issues, commenting, notifications and saved views. Switch
issue-list views with the ?view=table, ?view=board or ?view=list query parameter, or
with the view switcher in the UI. Press ⌘K (or Ctrl+K)
anywhere for the command palette, and ? to open the keyboard-shortcut help dialog.
/settings holds theme and default-view preferences.
| Script | What it does |
|---|---|
pnpm dev |
Start the dev server |
pnpm build |
Build for production |
pnpm start |
Start the production server |
pnpm typecheck |
Run the TypeScript compiler with no emit |
pnpm lint |
Run oxlint |
pnpm test |
Run the Vitest suite |
pnpm db:migrate |
Apply Prisma migrations in development |
pnpm db:seed |
Seed the database |
pnpm db:studio |
Open Prisma Studio |
pnpm db:deploy |
Apply Prisma migrations in production |
- Auth.js v5
- Additional OAuth providers
- Real-time updates
- File attachments
- Email notifications
- i18n
- Role-based access control
- Rate limiting
- End-to-end tests
See the open issues for a full list of proposed features and known issues.
Contributions make the open-source community a great place to learn and build. Any contributions you make are greatly appreciated.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a pull request
Distributed under the MIT License. See LICENSE for more information.
Om Patel
Project link: https://github.com/omunite215/Project_Issue-Tracker
- Best README Template
- Shields.io
- Img Shields for tech-stack logos