Architecture Kata “Secure Calculator”
Develop a desktop calculator software system which restricts certain operations to users of a particular math skill level.
Numbers will be entered only by pressing the 0..9 buttons, not by typing into the area where the number is displayed.
To restrict operation access the software needs to have a user administration. Users need to be registered (by some administrator to assign them to the proper level); they can login and logoff, change their password and request a password reset.
Upon start of the calculator users need to login first; the previously used user name will be suggested. If they forgot their password they can request a reset; a new password will be sent via email.
Each user is assigned a role or level. Usage of operations is limited by role, e.g. users with role “Beginner” are only allowed to use + but “Intermediate” users can also use – and *. Only “Advanced” users can also use /.
- Usage rights: Add (A), Subtract (S), Multiply (M), Divide (D)
- Roles with permissions: Beginner (A), Intermediate (A,S,M), Advanced (A,S,M,D)
- User: Email, password (store only as hash!), Role
“I am the founder of Majer Consulting and Majer Training and an experienced software developer, trainer and consultant. I have been on the road in the SAP world since 1998, supporting numerous projects, and have developed a passion for software engineering, software testing and agile development methods such as TDD. When I am not servicing customers or holding seminars, I am speaking at conferences or writing my next book.”