Full-stack help desk system built with .NET 9, Next.js 15, PostgreSQL, and Redis.
- Open in VS Code with Dev Containers extension
- Click "Reopen in Container"
- Wait for setup (~5-10 minutes)
See .devcontainer/README.md for details.
docker compose -f docker/docker-compose.yml up -d
docker compose -f docker/docker-compose.yml exec api dotnet ef database update
open http://localhost:3000See docker/QUICKSTART.md for details.
Requirements: .NET 9.0 SDK, Node.js 20+, PostgreSQL 16, Redis 7
# Backend
cd apps/api && dotnet restore && dotnet ef database update && dotnet run
# Frontend
cd apps/web && npm install && npm run dev- Dev Container - VS Code devcontainer
- Docker Setup - Docker documentation
- Specification - Product requirements
- API Docs - OpenAPI spec
- Data Model - Database schema
┌─────────┐ ┌─────────┐ ┌────────────┐
│ Next.js │────▶│ .NET 9 │────▶│ PostgreSQL │
│ :3000 │ │ :5000 │ │ :5432 │
└─────────┘ └────┬────┘ └────────────┘
│
┌────▼────┐
│ Redis │
│ :6379 │
└─────────┘
- Submit and track support tickets (US-001)
- Agent ticket management (US-002)
- Real-time updates (WebSockets)
- Optimistic concurrency control
- Performance: <2s submission, <30s response
- Full-text search, email notifications, Redis caching
# All tests
npx nx run-many --target=test --all
# Specific projects
dotnet test apps/api/Hickory.Api.Tests/Hickory.Api.Tests.csproj
npx nx test web
# E2E tests
npx nx e2e web-e2e
npx playwright show-report
# Performance tests
npm run test:performanceUses Nx for monorepo management.
npx nx run-many --target=build --all # Build all
npx nx run-many --target=test --all # Test all
npx nx run-many --target=lint --all # Lint allhickory/
├── apps/
│ ├── api/ # .NET 9 API
│ ├── web/ # Next.js 15 frontend
│ ├── cli/ # TypeScript CLI
│ └── *-e2e/ # E2E tests
├── docker/ # Docker config
├── specs/ # Specifications
└── tests/ # Test utilities
- JWT authentication
- Password hashing (bcrypt)
- Parameterized queries (SQL injection protection)
- XSS protection, CORS, rate limiting
See docker/README.md for production deployment.
Key considerations: Update JWT secret, configure SMTP, set up SSL/TLS, reverse proxy, monitoring, and backups.
See LICENSE file.
- Fork the repository
- Create a feature branch
- Make changes and run tests
- Submit a pull request
- Create an issue
- Check documentation
- Review troubleshooting guides