SlotsOne — Interactive Slot Machine Demo | v1.0 | Last updated: 2026-02-28
This document specifies the functional and non-functional requirements for the SlotsOne project.
Define verifiable requirements for the SlotsOne application so that development, QA, and stakeholders share a single source of truth. Each requirement is traceable to at least one test case.
SlotsOne is a browser-based slot machine with a React/PixiJS frontend and an Express/TypeScript backend (Remote Game Server). It includes user authentication, game session management, spin mechanics, and a responsive UI. The system is deployed via Docker Compose with Caddy for TLS.
QA engineers, developers, hiring managers reviewing this portfolio, and anyone evaluating the project's completeness and test coverage.
The application uses virtual currency only (no real-money gambling). Sessions and balances are stored in-memory and reset on server restart. User accounts and refresh tokens persist in PostgreSQL.
Users have a modern browser (Chrome, Firefox, Safari, or Edge, latest two major versions). The server runs on a single instance behind a Caddy reverse proxy with automatic HTTPS.
All endpoints live under /api/v1/. Request and response bodies are validated with
Zod schemas. The full OpenAPI 3.0 specification is served at
/api-docs.
PostgreSQL 16+ stores users and refresh_tokens tables. Game sessions,
balances, and spin history are kept in-memory (ephemeral). Connection is configured via the
DATABASE_URL environment variable.
Latest two major versions of Chrome, Firefox, Safari, and Edge. WebGL is required for the PixiJS canvas renderer.
Maps requirements to test cases. Click a test case ID to view it in the Test Cases page.
| Requirement | Title | Test Cases |
|---|