Backend API for the Vendomatic vending machine management system. Built with NestJS, TypeORM, and GraphQL.
A comprehensive dashboard/backoffice system for managing and monitoring vending machines, including machine management, product inventory, restocking operations, and maintenance tracking.
This API integrates with edge devices (Rust servers running on Raspberry Pi) deployed in vending machines to:
- Communicate with coin acceptors and bill validators via MDB protocol
- Update product prices in real-time on the vending hardware
- Monitor payment device status and transactions
- Collect telemetry data for operational insights
For detailed project features and roadmap, see ROADMAP.md.
- Node.js 18+
- PostgreSQL database
- Docker
yarn installCreate a .env file based on your configuration.
# Start development services
yarn docker
# Start application locally
yarn start:dev# Run migrations
yarn migration:runThe API will be available at http://localhost:3000/graphql
yarn start:dev- Start development server with hot reloadyarn start:debug- Start with debugging enabledyarn docker- Run with Docker Compose
yarn migration:run- Run database migrationsyarn migration:generate- Generate new migrationyarn migration:revert- Revert last migration
yarn test- Run all testsyarn test:unit- Run unit tests onlyyarn test:e2e- Run e2e tests onlyyarn test:cov- Run tests with coverage
yarn lint:check- Check linting issuesyarn lint:fix- Fix linting issuesyarn format:check- Check code formattingyarn format:fix- Fix code formattingyarn type:check- Run TypeScript type checking
yarn build- Build for productionyarn start:prod- Start production server
- Framework: NestJS
- Database: PostgreSQL with TypeORM
- API: GraphQL with Apollo Server
- Language: TypeScript
- Testing: Jest