This project demonstrates the operation of a queuing system for customer/user service. It consists of a .NET backend and a React frontend.
Use cases vary from Banks, Customer Service Centers, or government agencies.
Currently, the roles are fixed to bank branch service roles.
- src/Backend: ASP.NET Core Web API managing turns, agents, and real-time notifications via SignalR.
- src/Frontend: React application (Vite, TypeScript) providing dashboards for agents, turn display, and turn generation.
- .NET 10 SDK
- Node.js (v18 or later)
- npm
- Navigate to the backend directory:
cd src/Backend - Configure API Key secrets (required for authentication):
dotnet user-secrets set "ApiKey:AllowedClients:Default" "your-secret-key"
- Run the application:
The backend will be available at
dotnet run
http://localhost:5277(by default).
For more details, see Backend README.
- Navigate to the frontend directory:
cd src/Frontend - Install dependencies:
npm install
- Create a
.envfile or set environment variables to point to the backend:VITE_API_BASE_URL=http://localhost:5277/api/v1 VITE_API_KEY=your-secret-key
- Run the development server:
The frontend will be available at
npm run dev
http://localhost:5173.
- Backend: Uses a Singleton service to manage the in-memory state of turns and agents. It uses SignalR to broadcast turn updates to all connected clients.
- Frontend: Built with React and Bootstrap. It uses Axios for REST API calls and
@microsoft/signalrfor real-time updates.