Numerology Analyzer Java
A Java command-line application that performs birth-date based numerology analysis. The project calculates a user's Life Path Number, identifies the matching lucky colour, checks whether the result is a master number, identifies the user's generation, and compares Life Path Numbers for two people.
Overview
This project demonstrates basic software engineering practices using Java, including modular design, input validation, command-line interaction, and test implementation using Java assertions. It was originally developed as an academic software engineering project and later cleaned, refactored, and documented for portfolio presentation.
Reviewer Quick Scan
- What it demonstrates: Java fundamentals, validation logic, date edge cases, modular calculation code, and assertion-based testing.
- Best files to inspect first: src/Numerology.java, test/NumerologyTest.java, and docs/sample-output.txt.
- How to verify it: compile the source and run java -ea -cp out NumerologyTest to execute the assertion-based checks.
Features
- Calculate Life Path Number from a valid birth date
- Identify lucky colour based on Life Path Number
- Detect master numbers: 11, 22, and 33
- Identify generation based on birth year
- Compare two people's Life Path Numbers
- Accept month input as either a number or a month name
- Validate day, month, year, and leap-year inputs
- Includes assertion-based test cases for key functions
Tech Stack
| Category | Technology | |---|---| | Language | Java | | Application Type | Command-line application | | Testing | Java assertions | | Concepts | Modularity, validation, black-box testing, white-box testing |
Proof and Review Evidence
| Evidence | Where to inspect it | What it proves | |---|---|---| | Core calculation logic | src/Numerology.java | The Life Path Number, lucky colour, generation, and comparison logic are separated from the CLI. | | CLI entry point | src/Main.java | User interaction and input flow are visible in a small entry-point file. | | Assertion tests | test/NumerologyTest.java | Validation and calculation scenarios are covered with runnable Java assertions. | | Sample output | docs/sample-output.txt | Reviewers can inspect representative CLI output without running the app first. |
Project Structure
numerology-analyzer-java/
|-- src/
| |-- Main.java # Command-line menu and input flow
| `-- Numerology.java # Calculation and validation logic
|-- test/
| `-- NumerologyTest.java # Assertion-based tests
|-- docs/
| `-- sample-output.txt # Captured CLI output
|-- .gitignore
`-- README.mdGetting Started
Prerequisites
Make sure Java is installed: