source files folder path: ./ task / src / banking /
Stage description on JetBrains Academy site or locally
Stage start date: 2020-06-06
- be familiar with bank card numbering system
CS/IT concepts used:- requirements analysis, picking up relevant information from the description received,
- choosing the right data type for the modeled slice of reality - eg.: card number: integer vs real vs string,
- generate unique bank card numbers
CS/IT concepts used:- random number generator,
- the set data type,
- extracting logical parts from the string representing full card number (issuer ID, user ID, check digit),
- composing string representing the full card number from individual parts,
- keep records about issued card's data: number, pin, balance
CS/IT concepts used:- the map data type,
- wait for user input, process the option he/she chooses
CS/IT concepts used:- main application loop
- finite automata basics - state of the application
Stage description on JetBrains Academy site or locally
Stage start date: 2020-06-07
- to be familiar with 'Luhn formula' - card number checking algorithm
- check digit generation
- checking the correctness of the given card number according to the Luhn formula and the check digit provided
CS/IT concepts used (common for all above-mentioned topics):
- Java 8 streams - processing IntStream based on string representing full card number - series of digits
- generating / checking the remainder of division as a check digit
Stage description on JetBrains Academy site or locally
Stage start date: 2020-06-09
- ensuring the persistence of accumulated data
CS/IT concepts to use:
- CLI parameters utilization - eg. providing SQLite DB file name ,
- utilizing 'singleton' design pattern - for new 'AccDataBase' class and for the 'Log' class refactored from single variable,
- working with SQLite DB,
- basic concepts of JPA (Java Persistent API): data source, connection, SQL statement, prepared SQL statement, etc.,
- basic of DDL (Data Definition Language): create DB / create table, drop db, drop table,
- some of basic SQL CRUD operations:
- select ... from ... where ... ,
- insert into ... values ...,
Stage description on JetBrains Academy site or locally
Stage start date: 2020-06-15
- add more bank account-related operations:
- add income,
- do transfer (to another account),
- close account,
CS/IT concepts to use:
- update ... set ...,
- delete from ... where ...,
This project has been included in the version control system (git) and published on GitHub just after stage #2 completion