A real-time queue tracking application for falafel restaurants, built with FastAPI and WebSockets.
- Real-time Queue Management: Join and leave the queue with live updates
- Queue Statistics: Track current queue length, average wait times, and completed orders
- Wait Time History: View recent completed wait times with timestamps
- Visual Analytics: Graph showing wait time trends
- German Interface: Fully localized German user interface
- Responsive Design: Works on desktop and mobile devices
- Backend: FastAPI (Python)
- Database: Redis
- Frontend: Vanilla JavaScript with WebSockets
- Styling: Custom CSS with German falafel shop theme
- Containerization: Docker & Docker Compose
- Clone the repository
- Run the application:
docker-compose up
- Open your browser to
http://localhost:5000
-
Install dependencies:
pip install fastapi uvicorn redis
-
Start Redis server:
redis-server
-
Run the application:
python app.py
-
Open your browser to
http://localhost:5000
- Join Queue: Enter your name (optional) and the number of people ahead of you
- Track Progress: Watch real-time updates of queue statistics
- Leave Queue: Click "Warteschlange verlassen" when you're served
- View Analytics: Check the wait time graph and history
Environment variables:
REDIS_HOST
: Redis server hostname (default: localhost)REDIS_PORT
: Redis server port (default: 6379)
GET /
: Main application interfaceWebSocket /ws
: Real-time communication for queue updates
join_queue
: Add user to queueleave_queue
: Remove user from queueget_stats
: Request current statistics
queue_updated
: Broadcast queue state changes
The application uses:
- FastAPI for the web framework
- Redis for data persistence
- WebSockets for real-time updates
- Jinja2 templates for HTML rendering
MIT License