dagnarus15/mvp-vending-machine — explained in plain English
Analysis updated 2026-08-08 · repo last pushed 2021-10-27
Practice backend API design by studying how vending machine endpoints interact with each other.
Learn role-based access control by reviewing how sellers and buyers have different permissions.
Use as a coding exercise to think through edge cases like insufficient funds and out-of-stock products.
Study how to handle money and make change using fixed coin denominations in an API.
| dagnarus15/mvp-vending-machine | 0verflowme/intech-sol | abhishek-kumar09/configurate | |
|---|---|---|---|
| Language | Java | Java | Java |
| Last pushed | 2021-10-27 | 2022-11-16 | 2020-09-30 |
| Maintenance | Dormant | Dormant | Dormant |
| Setup difficulty | easy | hard | easy |
| Complexity | 2/5 | 1/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Java backend project requiring compilation and a local server start, plus a tool like curl or Postman to send HTTP requests.
This repository is a simple vending machine backend built as a pure REST API. It lets you create users, add products, deposit coins, and make purchases entirely through HTTP requests that send and receive JSON data. There is no user interface, everything is handled by API calls, making it a straightforward project for learning how backend logic works. The system has two types of users: sellers and buyers. Sellers can create, update, and delete products, specifying a name, cost, and how many are in stock. Buyers can deposit coins in denominations of 5, 10, 20, 50, or 100 cents, then spend that deposit on available products. When a buyer makes a purchase, the API returns the total spent, the products bought, and any change owed, broken down into the same coin denominations. Buyers can also reset their deposit balance without buying anything if they change their mind. Authentication is handled with basic auth on every request, meaning there are no login sessions to manage. Anyone can view products without logging in, but only the seller who created a product can modify or delete it. Creating a new user account is also open to anyone. The README notes a couple of known issues: updating users doesn't work properly, and there's no way to change a username or password once an account exists. This project is a good fit for someone practicing backend API design or working through a coding exercise that involves role-based access control, money handling, and edge-case thinking. A beginner learning how APIs work could use it to understand how different endpoints interact, while a developer reviewing it might focus on how it handles things like insufficient funds, out-of-stock products, or permission checks. The README explicitly asks the reader to think through edge cases and access issues, suggesting this was built as a skills demonstration or interview-style project.
A REST API backend for a vending machine where sellers manage products and buyers deposit coins and make purchases through HTTP requests. Built as a coding exercise to practice API design, money handling, and role-based access control.
Mainly Java. The stack also includes Java, REST API, JSON.
Dormant — no commits in 2+ years (last push 2021-10-27).
No license information is provided in this repository.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.