A modern incident management system for IT support teams to track and resolve service tickets efficiently. Built with Node.js, Express, PostgreSQL, and vanilla JavaScript.
Demo Credentials:
- Email:
admin@test.com - Password:
password123
- Ticket Management: Create, update, assign, and track incident tickets
- User Management: Role-based access (Admin, Agent, Viewer)
- Real-time Dashboard: Live metrics and activity feed
- Comments System: Internal and external ticket communication
- Search & Filtering: Advanced search with status and priority filters
- SLA Monitoring: Automated tracking with breach notifications
- Analytics: Charts and reports for performance tracking
- Responsive Design: Mobile-optimized interface
Backend:
- Node.js & Express.js
- PostgreSQL database
- JWT authentication
- bcrypt password hashing
- Winston logging
Frontend:
- Vanilla JavaScript (ES6+)
- CSS Grid & Flexbox
- Chart.js for analytics
- Font Awesome icons
- Responsive design
- Node.js 16+
- PostgreSQL 12+
-
Clone and install
git clone https://github.com/definitelyavi/incident-tracker.git cd incident-tracker npm install -
Set up database
createdb incident_tracker psql incident_tracker < database/postgresql/init.sql -
Configure environment
cp .env.example .env # Edit .env with your database credentials -
Start the application
npm run dev
-
Access at http://localhost:3001
Production Demo: https://incident-tracker-production.up.railway.app/
Demo Credentials:
- Email:
admin@test.com - Password:
password123
Note: Demo data resets periodically. Feel free to create test tickets and explore all features.
# Create demo users automatically
curl -X POST http://localhost:3001/api/auth/setup-demoDemo Login:
- Email:
admin@test.com - Password:
password123
# Required
NODE_ENV=development
PORT=3001
PG_DATABASE=incident_tracker
PG_USER=your_username
PG_PASSWORD=your_password
JWT_SECRET=your-secret-key-here
JWT_REFRESH_SECRET=your-refresh-secret-here
# Optional
PG_HOST=localhost
PG_PORT=5432
LOG_LEVEL=infoincident-tracker/
βββ backend/
β βββ config/ # Database and app configuration
β βββ middleware/ # Authentication, validation, error handling
β βββ routes/ # API endpoints
β βββ services/ # Business logic (SLA monitoring)
β βββ utils/ # Logging and utilities
βββ frontend/
β βββ css/ # Stylesheets
β βββ js/ # JavaScript modules
β βββ index.html # Main application
βββ database/
β βββ postgresql/ # Database schema
βββ server.js # Application entry point
// Login
POST /api/auth/login
{
"email": "user@example.com",
"password": "password123"
}
// Get current user
GET /api/auth/me
Authorization: Bearer <token>// Create ticket
POST /api/tickets
{
"title": "Server issue",
"description": "Web server not responding",
"priority": "high",
"category": "hardware"
}
// Get tickets
GET /api/tickets?status=open&priority=high- Admins: Full system access
- Agents: Ticket management and user viewing
- Viewers: Read-only access to own tickets
- Live dashboard metrics
- Instant notification system
- Activity feed updates
- Priority distribution charts
- Resolution trend analysis
- SLA compliance tracking
Core tables: users, tickets, comments, notifications, settings
Key relationships:
- Users can report and be assigned tickets
- Tickets have multiple comments
- Audit trail for all changes
npm run devnpm start# Run tests
npm test
# Run with coverage
npm run test:coverage- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new features
- Submit a pull request
Note: This project demonstrates full-stack development skills including database design, API development, authentication, and responsive frontend development.