Description: A web-based calculator that supports basic and advanced operations like addition, subtraction, multiplication, division, exponentiation, and logarithms. Links to:
This document provides detailed explanations and diagrams for various activity workflows within the system, covering the processes from user registration to encryption options.
In this document, the transition diagrams describe the states and transitions of the system, helping to visualize the flow and behavior of key features.
This file traces the relationships between functional requirements, user stories, and sprint tasks, helping to connect the diagrams to the overall project objectives and development goals.
- User Registration Workflow
- Login Workflow
- Perform Calculation Workflow
- Graphing Calculator Workflow
- Save Calculation History Workflow
- Export History Workflow
- Unit Conversion Workflow
- Encryption Option Workflow
This document outlines the core entities of the Advanced Calculator System (e.g., User, Calculator, History) along with their attributes, methods, and relationships. It helps visualize how data flows and how components interact within the system at a high level.
The class diagram provides a technical blueprint of the system using object-oriented principles. It includes classes, attributes, methods, inheritance, and associations, illustrating how the system is structured for implementation.
-
src/Models/
Contains data structures and logic models used in calculator operations. -
src/creational_patterns/
Implements common creational design patterns like Singleton, Factory, and Builder. -
src/tests/
Unit tests for validating each component of the application. -
src/test_results.txt
Output log of test results generated by pytest.
src/Repositories/
Contains all repository-related classes and interfaces.
Includes: Repository<T, ID> (generic interface), UserRepository, InMemoryUserRepository, and JSON_Repo for saving and retrieving user data.
src/RepositoryFactory/
Contains the RepositoryFactory class.
This factory dynamically creates the correct repository instance (either memory-based or file-based) at runtime based on the selected storage type.
src/UpdatedClassDiagram.md/ Contains the updated UML Class Diagram (using Mermaid) showing both the original system models and the newly added repository layer with interfaces and implementations.
This section documents the infrastructure and automation improvements completed for Assignment 14, including:
- Branch protection configuration
- Pull request automation
- GitHub Actions CI workflow
- Status badge integration
- Repository organization
- Enforced pull request-based contributions to the
mainbranch - Enabled required status checks using CI
- Prevented force pushes and direct commits
Screenshot:
docs/screenshots/branchRules/Rules.png
docs/screenshots/branchRules/Rules1.png
Created a reusable pull request template that auto-fills when contributors open PRs.
This ensures consistency and clarity in contributions.
File:
/.github/pull_request_template.md
Screenshot:
docs/screenshots/Pull_Request/pull_request.png
- Built a GitHub Actions workflow (
ci.yml) under.github/workflows/ - Automatically runs tests on each push or pull request to
main
Workflow file:
/.github/workflows/ci.yml
Screenshot of successful test run:
docs/screenshots/Test_Results_Success/Run Test-Success.png
Integrated a live status badge at the top of the README to reflect build/test status.
Screenshot:
docs/screenshots/status_badge_in_readme.png
- ⭐ Stars Received: 38
- 🍴 Forks: 31
- ✅ Good First Issues Tagged: 5+
- ✅ Feature Requests Tagged: 3+
- Voting Results.md – Includes stats, issue responses, improvements from feedback, and future collaboration plans.
- Reflections.md – A reflection on engaging with the open-source community, challenges, and learning outcomes.
good-first-issueandfeature-requestlabels were added to help guide contributors.- Improved documentation and tooltips based on user feedback.
- Added Pull Request and Issue templates under
.github/for consistent collaboration.
The roadmap outlines completed features, ongoing work, and planned enhancements for the Advanced Calculator System. It helps contributors and users understand the project’s direction and priorities.
Your project is CI-enabled and contributions are automatically tested via GitHub Actions.