A browser-based ATM simulator built with React, TypeScript, Tailwind CSS and Vite.
🔗 Live demo: https://codingminer.github.io/atm-machine/
- 💰 Deposit and withdraw money from a single virtual account
- 🔢 ATM style numeric keypad (digits 0-9, clear, backspace)
- ⚡ Real time amount display as you type
- 🛡️ Overdraft protection — cannot withdraw more than the current balance
- ✅ Zero amount validation
- 📦 Node.js 20+ and npm
npm install
npm run devOpen http://localhost:5173 in your browser.
npm run buildnpm test # unit tests, run once
npm run test:watch # unit tests, watch mode
npm run test:e2e # Playwright e2e tests (starts dev server automatically)All money logic lives in src/utils/atm.ts as pure functions with no side effects.
These are fully unit tested in src/utils/atm.test.ts.
- ⚛️ React
- 📘 TypeScript
- 🎨 Tailwind CSS
- ⚡ Vite
- 🧪 Vitest (unit tests)
- 🎭 Playwright (e2e tests)