Skip to content

SiphokaziCele/Assignment3AdvancedCalculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Assignment3AdvancedCalculator

Project Title: Advanced Calculator System

Run Tests

Description: A web-based calculator that supports basic and advanced operations like addition, subtraction, multiplication, division, exponentiation, and logarithms. Links to:

Specifications.md

Architecture.md

Reflections.md

Stakeholder_Analysis.md

System_Requirements.md

Functional_Requirements.md

User_Stories.md

Sprint_Tasks.md

BugTriage.png

IterativeDevelopment.png

Kanban_Explanation.md

ProductBacklog.md

SprintPlan.md

Template_Analysis.md

Test_Case.md

Domain_Model_Documentation.md

Class Diagram.md

Pictures

KanbanPic1.png

KanbanPic2.png

KanbanFull.png

Activity Diagrams and explanations

This document provides detailed explanations and diagrams for various activity workflows within the system, covering the processes from user registration to encryption options.

ActivityDiagrams.md

Transition Diagrams and Explanation

In this document, the transition diagrams describe the states and transitions of the system, helping to visualize the flow and behavior of key features.

TransistionDiagrams.md

Traceability

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.

Traceability.md

Activity diagrams Links

Domain Model

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.

Domain_Model_Documentation.md

Class Diagram

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.

Class_Diagram.md

Links to the codes

src/ Directory Overview

Key Project Folders and Files

  • 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.

Assignment 11

Links to the code:

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.

Assignment 14 – Project Infrastructure & DevOps Enhancements

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

Task 1: Branch Protection Rules

  • Enforced pull request-based contributions to the main branch
  • Enabled required status checks using CI
  • Prevented force pushes and direct commits

Screenshot:
docs/screenshots/branchRules/Rules.png docs/screenshots/branchRules/Rules1.png


Task 2: Pull Request Template

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


Task 3: CI Workflow with GitHub Actions

  • 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


Task 4: CI Status Badge in README

Integrated a live status badge at the top of the README to reflect build/test status.

Badge:
Run Tests

Screenshot:
docs/screenshots/status_badge_in_readme.png


🧑‍🤝‍🧑 Assignment 14: Open Source Collaboration & Community Engagement

Community Stats

  • Stars Received: 38
  • 🍴 Forks: 31
  • ✅ Good First Issues Tagged: 5+
  • ✅ Feature Requests Tagged: 3+

🔗 Contribution Files

  • 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.

💬 Contributor Support

  • good-first-issue and feature-request labels 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.

🗺️ Roadmap

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.

View Roadmap.md

🛠️ CI Badge (Above)

Your project is CI-enabled and contributions are automatically tested via GitHub Actions.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages