0% found this document useful (0 votes)
48 views6 pages

OOP Final Project Report

Uploaded by

rutendogandi2008
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views6 pages

OOP Final Project Report

Uploaded by

rutendogandi2008
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

OOP final Project Report

Digital
Transformation

Name : Rutendo Gandi

Language : Python

Date : 8 November 2024


Introduction
The Digital Transformation Management System (DTMS) is a console-based management system designed
to facilitate the management of users, contracts, and projects for an organization. The system supports
user-friendly operations for adding and searching users, creating and approving contracts, managing
project statuses, viewing all entries, and generating reports. This system is ideal for an organization aiming
to streamline and digitize its contract and project management processes.

OOP Design & Principles (25%)

User Class with Role Subclasses:

● File: models/user.py
● Implemented the User class as an abstract base for roles like Manager and Researcher.
● Used inheritance to derive role-specific classes and polymorphism for functions that vary by role
● Created the models file contains Python classes that likely correspond to the entities in the
system:

● File: exceptions/user.py
● invalid_user_permission_exception.py: Defines custom exceptions related to user permissions,
e.g., raising an error when a user tries to access data they don't have permission for.

1
● File: exceptions/user.py
● invalid_user_permission_exception.py: Defines custom exceptions related to user permissions,
e.g., raising an error when a user tries to access data they don't have permission for.

● File workflow_automation_service.py: Likely manages the automation of workflows within the


system, such as generating reports, sending notifications, or updating records automatically based
on certain triggers or rules.

● project_report_generator.py: This file likely handles the generation of reports related to projects,
perhaps aggregating data and presenting it in a readable format (like PDF or Excel) for users or
managers.

● main.py : This is typically the entry point of the application. When the program runs, this file is
executed first. It likely sets up the environment, initializes important components, and starts the
execution flow.

2
● controllers.py Controllers manage the application's interaction between the user and the models.
Each file here likely handles specific business logic:

● mock_data.py - This file contains mock data for users, contracts, and projects, which is used for
testing and demo purposes. The data includes a list of users with names , contracts, and projects.

● Mock Data: The mock data for users, contracts, and projects is now stored in mock_data.py.
When the system starts, it imports these mock datasets to simulate a real-world database.
● Generate Report: A new menu option 11 generates a report based on the current mock data. The
report includes:
○ Total number of users, contracts, and projects.
○ A list of contracts pending approval and those already signed.
● Menu Updates: The main menu has a new Generate Report option, which, when selected, runs
the generate_report function and outputs a simple report to the console.
1. Mock Data Initialization: On running the program, mock data for users, contracts, and projects is
loaded from the mock_data.py file.
2. User Actions: The user can interact with the system by selecting options to add users, contracts, or
projects. They can also approve or sign contracts and update project statuses.
3. Report Generation: The Generate Report option provides a summary of the system's current
state, including counts and lists of pending/approved contracts and completed projects.

3
File structure

4
Potential Impact and Applications

By adopting a DTMS, organizations can transition away from manual record-keeping and embrace digital
management, leading to:

● Increased Efficiency: Centralized management of users, contracts, and projects in a single


interface reduces administrative time.
● Enhanced Accountability: Approval and signature features help track the status of contracts and
projects, adding a layer of transparency.
● Better Decision-Making: The report generation feature allows managers to monitor data trends,
enabling more strategic decision-making.

You might also like