Skip to content

Simple Banking System - Java project made as a part of 'Java Developer Path' of JBA - JetBrains Academy

Notifications You must be signed in to change notification settings

ktprezes/SimpleBankingSystem-JetBrains-Academy-Java-Path-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Banking System - JetBrains Academy Project

source files folder path: ./ task / src / banking /

Project Stages / Other Sections

  1. Card anatomy
  2. Luhn algorithm
  3. I'm so lite
  4. Advanced system
  5. Remarks

Stage #1 - Card anatomy

Stage description on JetBrains Academy site or locally

Stage start date: 2020-06-06

Stage goals

  • 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

Top of page


Stage #2 - Luhn algorithm

Stage description on JetBrains Academy site or locally

Stage start date: 2020-06-07

Stage goals

  • 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

Top of page


Stage #3 - I'm so lite

Stage description on JetBrains Academy site or locally

Stage start date: 2020-06-09

Stage goals

  • 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 ...,

Top of page


Stage #4 - Advanced system

Stage description on JetBrains Academy site or locally

Stage start date: 2020-06-15

Stage goals

  • 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 ...,

Top of page


Remarks

This project has been included in the version control system (git) and published on GitHub just after stage #2 completion

Top of page

About

Simple Banking System - Java project made as a part of 'Java Developer Path' of JBA - JetBrains Academy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published