Thank you for investing time in the Banking System project! This document outlines how to report issues, propose enhancements, and submit code.
- Discuss First: Open a GitHub issue for bugs or feature requests. Provide context, reproduction steps, and acceptance criteria.
- Fork & Branch: Create a topic branch off
mainusing a descriptive name (e.g.,feature/interest-batch). - Sync Often: Rebase your branch on the latest
mainto minimize merge conflicts. - Follow Coding Standards:
- Use idiomatic Java 8+.
- Keep classes focused; prefer composition over inheritance when adding new behavior.
- Avoid catching generic
Exceptionunless rethrowing with context.
- Add Tests When Possible: A lightweight regression harness lives under
src/banking/test. Extend it or add complementary suites when you introduce new behavior, and document how to execute them.
- Compile the project with
javac $(find src/main/java -name "*.java"), execute automated checks viajava -cp src/main/java banking.test.BankTestRunnerand, when the H2 driver is available,java -cp "src/main/java:src/test/java" banking.test.JdbcBankIntegrationTest. Launch the console withjava -cp src/main/java banking.BankingApplicationto verify interactive scenarios. - Ensure new features integrate with existing persistence by exercising create/deposit/withdraw flows.
- Update documentation (
README,docs/) when behavior or configuration changes. - Commit with conventional-style messages (e.g.,
feat: add overdraft protection). - Submit a pull request referencing related issues and summarizing test coverage.
- Reviews focus on correctness, clarity, and maintainability.
- Be responsive to feedback and push follow-up commits addressing comments.
- Prefer small, focused pull requests to large multi-feature drops.
- Adhere to the Code of Conduct.
- Respect the time and effort of maintainers by providing complete context and testing notes.
Happy hacking!