A ticket management system built with Next.js 15
TaskTracker is a full-stack ticket management application that allows teams to create, track, and manage tasks efficiently.
Note: This application is currently optimized for desktop view only and is not yet responsive for mobile devices.
- User Authentication: Secure login and registration system with Oslo authentication libraries
- Ticket Management: Create, view, edit, and delete tickets
- Status Tracking: Track tickets with different statuses (Open, In Progress, Done)
- Comments System: Add comments to tickets for better collaboration
- Search & Filter: Find tickets with search and filtering options using nuqs
- Pagination: Efficiently handle large numbers of tickets pagination
- Sorting: Sort tickets by various criteria using nuqs
-
Core Framework:
- Next.js 15
- React 19
- TypeScript
-
UI & Styling:
- Tailwind CSS
- Shadcn UI components
- next-themes (dark/light mode)
-
State Management & Data Fetching:
- TanStack React Query (data fetching)
- Next.js Server Actions (backend operations)
- nuqs (URL-based state management)
-
Database & Authentication:
- Prisma ORM
- Supabase (PostgreSQL)
- Oslo authentication libraries (@oslojs/crypto, @oslojs/encoding)
-
Utility Libraries:
- zod (schema validation for form and API data)
- date-fns (date manipulation)
- big.js (precise number calculations)
- react-error-boundary (controlled error handling)
- react-intersection-observer (scroll detection)
- fastest-levenshtein (string similarity comparison)
- use-debounce (debouncing user input)
- Feature-Based Architecture:
- The codebase is organized by features (e.g.,
tickets,auth,comments) rather than by type (e.g.,components,hooks,utils). - Each feature contains its own components, hooks, and utilities, making it easier to scale and maintain the application.
- The codebase is organized by features (e.g.,
- Node.js 18+ and npm/yarn
- Supabase account for PostgreSQL database
-
Clone the repository:
git clone https://github.com/yourusername/tasktracker-pro.git cd tasktracker-pro -
Install dependencies:
npm install # or yarn install -
Set up environment variables: Create a
.envfile in the root directory with the following variables:DATABASE_URL="postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-REF].supabase.co:5432/postgres" DIRECT_URL="postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-REF].supabase.co:5432/postgres" -
Run database migrations:
npx prisma migrate dev
-
Seed the database:
npm run prisma-seed
-
Start the development server:
npm run dev # or yarn dev -
Open http://localhost:3000 with your browser to see the application.
npm run test
# or
yarn testThis application can be easily deployed on Vercel: