A simple banking system written in Java used to teach object-oriented programming and best coding practices.

Overview

didactic-bank-application

A simple banking system written in Java used to teach object-oriented programming and best coding practices. It is a three-layered application, with: (i) a UI layer, with a command line interface and a graphical interface (in Java Swing); (ii) a business layer; and (iii) a data layer, implemented in memory.

The project contains the required libs so there is no need for students that are learnign object orientation to use any additional tool. The project is configured in Eclipse.

Features

  • Login
    • Branch: employees provide their user and password
    • ATM: clients provide their account number, branch number, and password
  • Logout
  • Create Account (only in branches)
    • New banck account associated with a branch and a client is created
    • A certain value informed as initial balance
  • Check Balance
    • System shows the account balance and current date and time
  • Statement
    • System shows all month operations in the month or selected period
      • Last month (one of the last 6 months)
      • Period (if no data is provided, last 30 days)
  • Deposit
    • Client provides the desired value and informs the number of the envolope to give the money
  • Withdrawal
    • Client provides the desired value
  • Transfer
    • Client provide the branch, target account, and the desired value

Packages

  • bank: application initialisation
  • bank.business: application services (interfaces)
  • bank.business.domain: domain classes
  • bank.business.impl: application services (implementation)
  • bank.data: application database (in memory)
  • bank.resources: text messages
  • bank.ui: user interface (top-level package)
  • bank.ui.graphic: graphical user interface
  • bank.ui.graphic.action: graphical user interface (actions)
  • bank.ui.text: textual user interface
  • bank.ui.text.command: textual user interface (commands)
  • bank.util: util classes

Running the Application

Execute the bank.Bank class, which contains the main method. It starts the application with the graphical user interface. To execute the application with the textual user interface, start the application with -t.

Additional Documentation

Observation: This application has been used within the INF01120 - Programming Construction Techniques course at the Informatics Institute of UFRGS. Students are required to understand and evolve its code. Classes taught before students are given this assignment: object-oriented programming, basic UML (class and sequence diagrams), and code coventions and best practices. The students already know (from previous courses) procedural programming (in C) and data structures.

You might also like...

Better compatibility, compatible with konas, future, pyro and rusher.

Compatible phobos 1.9.0 compatible with pyro, future, konas and rusher. to build it yourself, use: MACOS/LINUX: ./gradlew setupDecompWorkspace ./gradl

Dec 2, 2022

This repository contains HttpUrlConnection and Volley based application example

This repository contains HttpUrlConnection and Volley based application example. In this you will find implementation of both ways to consume API. This repository show examples to send receive the data in both cases.

Jan 15, 2022

Leading REST API framework for Java

Restlet Framework The leading REST API framework for Java Thanks to Restlet Framework's powerful routing and filtering capabilities, unified client an

Dec 18, 2022

Feign makes writing java http clients easier

Feign makes writing java http clients easier

Feign makes writing java http clients easier Feign is a Java to HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket. Feign's first goal

Jan 2, 2023

Feign makes writing java http clients easier

Feign makes writing java http clients easier

Feign makes writing java http clients easier Feign is a Java to HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket. Feign's first goal

Mar 13, 2021

A Java API wrapper for the pastemyst api

Pastemyst.java What is pastemyst.java? pastemyst.java is a pastemyst API Wrapper, written in Java. The library is in early development, and all contri

Sep 28, 2022

API de Clientes - Java+Quarkus

com.clientes.api Project This project uses Quarkus, the Supersonic Subatomic Java Framework. If you want to learn more about Quarkus, please visit its

Oct 12, 2021

MCQs and coding questions solutions of Object-Oriented Programming java of coding ninjas

cn-java-sols (⌐■_■) Link to This repository Other similar repository of my friend Link 🤩 enjoy having full marks 💯 😍 now answers avaible up to Stri

Dec 27, 2022

💻 Machine Coding - leetcode LLD (coding blox) - It is an Online Coding Platform that allows a user to Sign Up, Create Contests and participate in Contests hosted by Others.

leetcode-lld-flipkart-coding-blox Machine coding - leetcode LLD (coding blox) My Approach : https://leetcode.com/discuss/interview-question/object-ori

Sep 15, 2022

Simple Java image-scaling library implementing Chris Campbell's incremental scaling algorithm as well as Java2D's "best-practices" image-scaling techniques.

imgscalr - Java Image-Scaling Library http://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-library/ Changelog --------- 4.2 * Added sup

Jan 5, 2023

Event promoted by DevSuperior to improve the best practices of Spring with Java and has React JS as an additional.

Event promoted by DevSuperior to improve the best practices of Spring with Java and has React JS as an additional.

Semana-Spring-React (sds3.0) Introduction SDS3 is an event promoted by DevSuperior which aims to help students and programming professionals to enter

Oct 25, 2021

This is a sample application demonstrating Quarkus features and best practices

This is a sample application demonstrating Quarkus features and best practices

Quarkus Superheroes Sample Table of Contents Introduction Project automation GitHub action automation Application Resource Generation Running Locally

Jan 6, 2023

Spring Boot REST API authentication best practices using JWT

 Spring Boot REST API authentication best practices using JWT

Spring Boot REST API authentication best practices using JWT Token based API authentication with Spring Security and JWT (JSON web Token) Overview Thi

Dec 22, 2022

👨‍🏫ITMO University first 4 labs. They are about object oriented programming and Java language

Java-Programming-1st-semester 1st lab - math operations, formatted output. 2nd lab - object oriented programming. 3rd lab - SOLID and STUPID principle

Dec 1, 2022

A sideproject to learn more about object-oriented programming, design patterns and Java meanwhile studying an OOP-course.

MyBank Description A console application that simulates a bank with very simple functions. Potential story could be an employee using this application

Mar 23, 2022

A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas.

A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas.

FileManager A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas. Enables folder creatio

Feb 7, 2022

Learning and improving skills in Object Oriented Programming, with concepts from the Spotify App

 Learning and improving skills in Object Oriented Programming, with concepts from the Spotify App

sPOOtify Screenshot EN A project developed in the discipline of Object Oriented Programming, to apply and improve the concepts of Object Orientation.

Jan 2, 2023

Initial example of Object Oriented Programming, with Java

Initial example of Object Oriented Programming, with Java

Programación - Alumnos Clase Ejemplo inicial de Programación Orientada a Objetos, con Java. Nuestra primeras clases, con usos, abusos, y algunos tests

Dec 27, 2022
Owner
Ingrid Nunes
I have a very long-term relationship with Java, so it's hard to not like it <3
Ingrid Nunes
Rapidoid - Extremely Fast, Simple and Powerful Java Web Framework and HTTP Server!

Rapidoid - Simple. Powerful. Secure. Fast! Rapidoid is an extremely fast HTTP server and modern Java web framework / application container, with a str

null 1.6k Dec 30, 2022
Rest.li is a REST+JSON framework for building robust, scalable service architectures using dynamic discovery and simple asynchronous APIs.

Rest.li is an open source REST framework for building robust, scalable RESTful architectures using type-safe bindings and asynchronous, non-blocking I

LinkedIn 2.3k Dec 29, 2022
A damn simple library for building production-ready RESTful web services.

Dropwizard Dropwizard is a sneaky way of making fast Java web applications. It's a little bit of opinionated glue code which bangs together a set of l

Dropwizard 8.3k Jan 5, 2023
Simple JSP Servlets REST api.

Simple JSP Servlets REST api.

MisterFunny01 3 May 9, 2021
A simple http wrapper

HTTP Wrapper A Java 8 HTTP Wrapper Lib to deserialize the response! Explore the docs » Examples · Report Bug · Request Feature Getting Started This is

Diego Cardenas 13 Jul 22, 2021
Microserver is a Java 8 native, zero configuration, standards based, battle hardened library to run Java Rest Microservices via a standard Java main class. Supporting pure Microservice or Micro-monolith styles.

Microserver A convenient modular engine for Microservices. Microserver plugins offer seamless integration with Spring (core), Jersey, Guava, Tomcat, G

AOL 936 Dec 19, 2022
A type-safe HTTP client for Android and the JVM

Retrofit A type-safe HTTP client for Android and Java. For more information please see the website. Download Download the latest JAR or grab from Mave

Square 41k Jan 5, 2023
Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API

Swagger Core NOTE: If you're looking for Swagger Core 1.5.X and OpenAPI 2.0, please refer to 1.5 branch. NOTE: Since version 2.1.7 Swagger Core suppor

Swagger 7.1k Jan 5, 2023