Skip to content

Commit d61caed

Browse files
committed
Added Spec
1 parent 30bc3d7 commit d61caed

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,38 @@
11
# project-2-ATM
22
Week 2 project: ATM Simulator
3+
4+
## ATM Requirements
5+
6+
Every feature must have corresponding unit tests
7+
Tests should demonstrate proper behavior, and proper handling of misuse (eg attempts to deposit/transfer/withdraw negative amounts
8+
9+
- User interface: CLI Only
10+
- Direct Input
11+
- Numbered options (instead of on-screen buttons)
12+
- ASCII art welcome but not required
13+
- Must support account types:
14+
- Checking
15+
- Savings
16+
- Investment
17+
- Account Actions
18+
- Withdraw from acct
19+
- Deposit to acct
20+
- Transfer across accounts (self)
21+
- Open new account
22+
- Close account (must be empty)
23+
- Print transaction history
24+
- Check balance
25+
- **Challenge:** Transfer to another user's account (but not from)
26+
- Support multiple users
27+
- Users have associated accounts
28+
- Can create new user
29+
- Users are authenticated with a password (generated or provided on user creation)
30+
- Can exit a user and enter another user
31+
- **BONUS** Persistence
32+
- Users and accounts remain persistent
33+
- Opportunity for research
34+
35+
Recommended:
36+
37+
Create a `UserInputHandler` class that manages all input requests to the user; Extend this with a `DummyUserInputHandler` for testing (provide scripted user input using this object)
38+

0 commit comments

Comments
 (0)