All Projects → ingridnunes → didactic-bank-application

ingridnunes / didactic-bank-application

Licence: GPL-3.0 license
A simple banking system written in Java used to teach object-oriented programming and best coding practices.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to didactic-bank-application

LabelPropagation
A NetworkX implementation of Label Propagation from a "Near Linear Time Algorithm to Detect Community Structures in Large-Scale Networks" (Physical Review E 2008).
Stars: ✭ 101 (+215.63%)
Mutual labels:  modularity
recaf
Recaffeinating Java ☕️ with custom semantics and extensions
Stars: ✭ 48 (+50%)
Mutual labels:  modularity
lion
A simple, modular Discord bot from scratch
Stars: ✭ 15 (-53.12%)
Mutual labels:  modularity
colony
Implementation of the colony specification for python
Stars: ✭ 23 (-28.12%)
Mutual labels:  modularity
R2D2BC
https://d-i-t-a.github.io/R2D2BC/
Stars: ✭ 27 (-15.62%)
Mutual labels:  modularity
Solid
.NET apps done SOLID way
Stars: ✭ 18 (-43.75%)
Mutual labels:  modularity
freedsl
Practical effect composition library based on abstract wrapping type and the free monad
Stars: ✭ 37 (+15.63%)
Mutual labels:  modularity
Modular Monolith With Ddd
Full Modular Monolith application with Domain-Driven Design approach.
Stars: ✭ 6,210 (+19306.25%)
Mutual labels:  modularity
Swift Composable Architecture
A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
Stars: ✭ 5,199 (+16146.88%)
Mutual labels:  modularity
newspeak
Newspeak is a live object-capability language in the Smalltalk tradition
Stars: ✭ 73 (+128.13%)
Mutual labels:  modularity
overwolf-modern-react-boilerplate
OMRB is a free and open source opinionated boilerplate based on React that helps developers create fast, modular and modern overwolf app.
Stars: ✭ 21 (-34.37%)
Mutual labels:  modularity
unity-ui-manager
🎫 A Simple UI Manager for rapid prototyping and ease of collaboration
Stars: ✭ 44 (+37.5%)
Mutual labels:  modularity
pf4j-update
Update mechanism for PF4J
Stars: ✭ 56 (+75%)
Mutual labels:  modularity
quantum-blox
Quantum blox - modular UI boilerplate in react
Stars: ✭ 12 (-62.5%)
Mutual labels:  modularity
java9-module-examples
a list of Java 9 module samples to dive into the modular world
Stars: ✭ 25 (-21.87%)
Mutual labels:  modularity
modular-assemblies
[NeurIPS 2019] Code for the paper "Learning to Control Self-Assembling Morphologies: A Study of Generalization via Modularity"
Stars: ✭ 98 (+206.25%)
Mutual labels:  modularity
modules
The official repository for our paper "Are Neural Nets Modular? Inspecting Functional Modularity Through Differentiable Weight Masks". We develop a method for analyzing emerging functional modularity in neural networks based on differentiable weight masks and use it to point out important issues in current-day neural networks.
Stars: ✭ 25 (-21.87%)
Mutual labels:  modularity
Sophie
New repo - https://gitlab.com/SophieBot/sophie
Stars: ✭ 28 (-12.5%)
Mutual labels:  modularity
educational-platform
Modular Monolith Java application with DDD
Stars: ✭ 124 (+287.5%)
Mutual labels:  modularity
ctx
🍭Ctx (Context) 是一个服务模块化上下文框架。
Stars: ✭ 38 (+18.75%)
Mutual labels:  modularity

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].