Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Create a NEW repository from scratch and transfer any relevant work as you complete the assignment, you need to show a clear history of work

Create a NEW repository from scratch and transfer any relevant work as you complete the assignment, you need to show a clear history of work through your commits, or your project could be given as low as a
0
for not showing your work.
Submit through a GitHub repository link containing the necessary documentation, configuration examples, and a coherent commit history.
You are required to write a short description and link to your implememtation of the design patterns you use.
You need to provide a description of how you used environment variables and link to your code to illustrate.
You need to explain and link to how you are using logging
.
You need to link to and explain how you are using try
/
catch
/
exceptions to illustrate "Look Before You Leap"
(
LBYL
)
and "Easier to Ask for Forgiveness than Permission"
(
EAFP
)
/
REQUIRED
-
YOU MUST USE GITHUB ACTIONS AND YOUR CODE MUST PASS ALL THE TESTS ON GITHUB
Core Functionalities
Command
-
Line Interface
(
REPL
)
Implement a Read
-
Eval
-
Print Loop
(
REPL
)
to facilitate direct interaction with the calculator. This interface should support:
Execution of arithmetic operations
(
Add
,
Subtract, Multiply, and Divide
)
Management of calculation history.
Access to extended functionalities through dynamically loaded plugins.
Plugin System
Create a flexible plugin system to allow seamless integration of new commands or features. This system should:
Dynamically load and integrate plugins without modifying the core application code.
Include a REPL "Menu" command to list all available plugin commands, ensuring user discoverability and interaction.
Calculation History Management with Pandas
Utilize Pandas to manage a robust calculation history, enabling users to:
Load, save, clear, and delete history records through the REPL interface.
Professional Logging Practices
Establish a comprehensive logging system to record:
Detailed application operations, data manipulations, errors, and informational messages.
Differentiate log messages by severity
(
INFO
,
WARNING, ERROR
)
for effective monitoring.
Dynamic logging configuration through environment variables for levels and output destinations.
Advanced Data Handling with Pandas
Employ Pandas for:
Efficient data reading and writing to CSV files.
Managing calculation history.
Design Patterns for Scalable Architecture
Incorporate key design patterns to address software design challenges, including:
Facade Pattern: Offer a simplified interface for complex Pandas data manipulations.
Command Pattern: Structure commands within the REPL for effective calculation and history management.
Factory Method, Singleton, and Strategy Patterns: Further enhance the application's code structure, flexibility, and scalability.
Development, Testing, and Documentation Requirements
Testing and Code Quality
Achieve a minimum of
9
0
%
test coverage with Pytest.
Ensure code quality and adherence to PEP
8
standards, verified by Pylint.
Version Control Best Practices
Utilize logical commits that clearly group feature development and corresponding tests, evidencing clear development progression.
Comprehensive Documentation
Compile detailed documentation in README.md
,
covering setup instructions, usage examples, and an in
-
depth analysis of architectural decisions, particularly emphasizing the implementation and impact of chosen design patterns and the logging strategy.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

SQL Server T-SQL Recipes

Authors: David Dye, Jason Brimhall

4th Edition

1484200616, 9781484200612

More Books

Students also viewed these Databases questions