Skip to content

ayushmgarg/vendingmachine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vending Machine (Java Swing + SQLite)

Java Swing desktop app for a vending machine with admin and customer flows, backed by SQLite. Inventory updates after each order and order history is persisted.

Features

  • Admin login (username/password)
  • Customer quick start (name only)
  • Manage inventory: add, edit, delete, activate/deactivate
  • Browse items, add to cart, checkout
  • Inventory decrements on purchase
  • Order history view (admin)
  • Cart editing: remove items, edit quantities, double-click to edit, live total

Tech Stack

  • Java 8+
  • Swing UI
  • SQLite via sqlite-jdbc
  • Maven build

Quick Start

  1. Build
    • Windows PowerShell:
      • mvn -q -e -DskipTests package
  2. Run
    • java -jar target/vendingmachine-1.0.0.jar

First run creates vendingmachine.db and seeds:

  • Admin user: admin / admin
  • Sample items: Chips, Soda, Candy

Project Structure

src/main/java/com/vendingmachine/
  App.java                 # Entry point
  db/Database.java         # SQLite connection + schema init
  model/Item.java          # Domain models
  model/Order.java
  model/OrderItem.java
  dao/ItemDao.java         # Data access
  dao/OrderDao.java
  ui/LoginFrame.java       # Swing screens
  ui/AdminFrame.java
  ui/CustomerFrame.java
  ui/AdminService.java
src/main/resources/schema.sql  # DB schema & seed
pom.xml

Notes

  • Passwords are stored in plain text for demo; replace with hashing for production.
  • If you prefer MySQL instead of SQLite, see below.

Switch to MySQL (optional)

  1. Add dependency in pom.xml:
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.33</version>
</dependency>
  1. Update Database.java JDBC URL and credentials.
  2. Run equivalent schema in MySQL (convert INTEGER PRIMARY KEY AUTOINCREMENT to INT AUTO_INCREMENT, DATETIME DEFAULT CURRENT_TIMESTAMP, etc.).

Development

  • Java version is set to 1.8 for broad compatibility. Update in pom.xml if you have a newer JDK.
  • Logs use slf4j-simple.

License

MIT

A simultion of a vending machine for all your needs adminPage customerPage

About

A simultion of a vending machine for all your needs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages