A modern, full-stack issue tracking application built with Next.js 14, featuring real-time dashboard analytics, user authentication, and comprehensive issue management capabilities.
- Dashboard Analytics - Visual charts and summaries of issue statistics
- Issue Management - Create, edit, delete, and assign issues
- User Authentication - Google OAuth and credentials-based login
- Issue Assignment - Assign issues to team members
- Status Tracking - Track issues through OPEN, IN_PROGRESS, and CLOSED states
- Pagination & Filtering - Efficient browsing of large issue lists
- Responsive Design - Mobile-friendly interface with Radix UI components
- Framework: Next.js 14 with App Router
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js with Google OAuth
- UI Components: Radix UI with Tailwind CSS
- State Management: TanStack Query (React Query)
- Form Handling: React Hook Form with Zod validation
- Charts: Recharts for data visualization
- Node.js 18+
- PostgreSQL database
- Google OAuth credentials (optional)
- Clone the repository:
git clone <repository-url>
cd issue-tracker- Install dependencies:
npm install- Set up environment variables:
cp .env.example .envConfigure the following variables in .env:
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret-key
POSTGRES_PRISMA_URL=your-postgres-connection-string
POSTGRES_URL_NON_POOLING=your-postgres-direct-connection
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret- Set up the database:
npx prisma migrate dev- Start the development server:
npm run devVisit http://localhost:3000 to see the application.
├── app/ # Next.js app directory
│ ├── (home)/ # Dashboard pages
│ ├── api/ # API routes
│ ├── issues/ # Issue management pages
│ └── signup/ # User registration
├── components/ # Reusable UI components
├── lib/ # Utilities and data queries
├── prisma/ # Database schema and migrations
└── types/ # TypeScript type definitions
GET /api/issues- Fetch issues with pagination and filteringPOST /api/issues- Create new issuePATCH /api/issues/[id]- Update existing issueDELETE /api/issues/[id]- Delete issueGET /api/users- Fetch users for assignmentPOST /api/signup- User registration
The application uses three main models:
- Issue - Core issue tracking with title, description, status, and assignments
- User - User accounts with authentication support
- Account - OAuth account linking for NextAuth.js
- Fork the repository
- Create a 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
This project is licensed under the MIT License.