A modern, full-stack incident management application built with NestJS, React, and Prisma. This project allows users to track, manage, and prioritize technical or operational incidents.
- Incident Management: Create, view, update, and delete incidents.
- Validation: Strict input validation using
class-validatorandzod. - Type Safety: End-to-end type safety with TypeScript and Prisma.
- API Documentation: Interactive Swagger UI for backend testing.
- Modern UI: Built with React 19, Tailwind CSS 4, and React Query 5.
- Database: PostgreSQL integration with Prisma 7.
The project is structured as a monorepo-style setup:
/backend: NestJS application (REST API)./frontend: React + Vite application.docker-compose.yml: Database orchestration.
- Framework: NestJS
- ORM: Prisma 7
- Validation:
class-validator,class-transformer - Documentation: Swagger/OpenAPI
- Framework: React 19
- Build Tool: Vite 7
- State Management: React Query 5
- Styling: Tailwind CSS 4
- Form Handling: React Hook Form + Zod
- Node.js (v18 or higher)
- Docker & Docker Compose
Start the PostgreSQL database using Docker Compose:
docker-compose up -d- Navigate to the backend directory:
cd backend - Install dependencies:
npm install
- Configure environment variables (Create a
.envfile):DATABASE_URL="postgresql://user_admin:password123@localhost:5432/incident_tracker?schema=public" JWT_SECRET="change-me-to-a-long-random-value"
- Run Prisma migrations and generate client:
npx prisma migrate dev npx prisma generate
- Start the development server:
API will be available at:
npm run start:dev
http://localhost:3000Swagger UI:http://localhost:3000/api
- Navigate to the frontend directory:
cd frontend - Install dependencies:
npm install
- Start the development server:
Frontend will be available at:
npm run dev
http://localhost:5173
.
├── backend # NestJS Source
│ ├── prisma # Database schema & migrations
│ ├── src # Application logic
│ └── generated # Auto-generated Prisma client
├── frontend # React Source
│ ├── src # UI Components, Hooks, Stores
│ └── public # Static assets
└── docker-compose.yml # Infrastructure