Develop an advanced customer relationship management

Assignment Help Programming Languages
Reference no: EM133538998 , Length: word count:2000

Intermediate Programming - Coding Assignment Analysis

Learning outcome 1: Create unit tests and a test-driven development environment.
Learning outcome 2: Use exception handling and debugging to identify and manage runtime errors.
Learning outcome 3: Create an application via object-oriented programming.
Learning outcome 4: Develop an application using best practices and design patterns.

Your Task

This assessment is to be completed individually. In this assessment, you will create an application via object-oriented programming and develop an application using best practices and design patterns which meets the specifications described in the case study.

Assessment Description

This assessment is to be completed individually. In this assessment, you will create an advanced Customer Management System using object-oriented programming principles and applying best practices and design patterns. The system should meet the specifications outlined in the case study and demonstrate your proficiency in advanced concepts and techniques.

You will be provided with a case study which will require you to use your problem-solving skills and you will create an application via object-oriented programming and apply best practices and design patterns to an application. You will need to create a solution and develop the program using Python 3 language.

Case Study:
You have been hired as a lead software engineer to develop an advanced Customer Relationship Management (CRM) System for a multinational corporation. The system should provide comprehensive customer management functionalities and integrate with various external services. You need to design and implement classes for customer data management, incorporate advanced features, and ensure high performance and security.

Customer (class)
• Properties: id (integer), name (string), email (string), phone_number (string), date
(string), and address (string)
• Getters: getId(), getName(), getEmail(), getPhoneNumber(), getAddress()
• Setters: setName(newName), setEmail(newEmail), setPhoneNumber(newPhoneNumber), setAddress(newAddress)
• Methods:
o A repr method that displays detailed information about the customer
o A calculate_age() method that calculates the customer's age based on their date of birth (provided as a parameter)

CustomerManager (class)
• Properties: customers (list of Customer objects)
• Methods:
o addCustomer(customer: Customer) - adds a customer to the customer list
o removeCustomer(customer: Customer) - removes a customer from the customers list
o getCustomersByAgeRange(min_age: int, max_age: int) - returns a list of customers within the specified age range
o getCustomersByAddress(address: str) - returns a list of customers with a matching address
o exportData(filename: str) - exports customer data to a CSV file (optionally you may use JSON file structure)

Note: You are required to implement appropriate exception handling techniques to handle potential errors, such as invalid data inputs or file handling issues. Ensure that meaningful error messages are displayed to the user when exceptions occur. Develop comprehensive unit tests using a suitable testing framework to verify the functionalities of the Customer and CustomerManager classes.
Ensure that the tests cover various scenarios and edge cases.

Assessment Instructions

Assessment instructions for this assessment:

1. Read the case study provided and interpret the program specifications.

2. Develop a Python 3 program that meets the specifications outlined in the case study.

3. Submit your Python 3 program code to the designated submission platform by the due date.

a) You must submit your Python 3 program code in .py format extension. Any other formats will not be accepted.

4. Implement the Python classes and methods based on the provided requirements.

5. Utilise appropriate inheritance and class properties.

6. Apply basic principles of object-oriented programming, including encapsulation and inheritance.

7. Follow the PEP 8 coding conventions and use meaningful names for variables and functions.

8. Include comments to explain the functionality and any assumptions made.

9. Develop comprehensive unit tests using an appropriate testing framework to validate the functionalities.

10. Apply robust exception handling techniques to handle potential errors.

Note: Aim to demonstrate advanced proficiency in object-oriented programming, software design, and exception handling. Consider code correctness, performance, and adherence to best practices in your implementation.

Reference no: EM133538998

Questions Cloud

Identify an emergency management position at different level : Identify an emergency management position at a different level. Describe the different hiring requirements between the two positions.
Mortality rates among pretrial detainees : What is a landmark case that had an influence on changes in our justice system due to mortality rates among pretrial detainees?
Briefly describe all of risks facing the facility : Briefly describe all of the risks facing the facility described in the reading
What are the arguments against the use of dietary supplement : What are the arguments supporting the use of dietary supplements? Who needs them? What are the arguments against the use of dietary supplements?
Develop an advanced customer relationship management : TECH6100 Intermediate Programming - Create unit tests and a test-driven development environment and Use exception handling and debugging to identify and manage
How will you alter your approach next time : Was there information you wished you had available but did not? How will you alter your approach next time?
Understanding of legal concepts and framework explored : The purpose of this portion of the assignment is to assess your understanding of the legal concepts and framework explored in this course.
Write a query that returns the employees with initials : Write a query that returns the employees with initials that are a palindrome and also return employees without palindrome initials, but output 'not
What suggestions do you have for operations managers : What are the most recent trends and challenges that Operations Departments faced in 2021 as related to New product design? Based on the analysis

Reviews

Write a Review

Programming Languages Questions & Answers

  Display the software developers data on the console

Meets specifications by demonstrating file handling, array data structure manipulation, and console output mastery by accomplishing the following.

  Complete various exercises in bluej using the java language

CSC72003 - Programming II - Southern Cross University - create a new instance of the Game class, run the play method and familiarize yourself with the game

  Write a program that stores numbers in the given range

Write a program that stores numbers from the range 0 - 1000 in an array. Your program should. Create an array of size 50. Run in two modes and ask the user.

  Assume the filling process is so slow that the tank air

a large compressed air storage tank with a volume of 100 m3is initially at 200 kpa and 288 k. the supply line valve is

  In what stage of the programming process are flowcharts used

In what stage of the programming process are flowcharts and pseudocode used

  What do you meant by abstract keyword

What does the abstract keyword do and what are generics as they relate to the built in linked list class? Why do we need them?

  Create a query that lists the following fields

Create a query that lists the following fields, in the order in which they appear below:

  Return boolean value true if string in array is palindrome

Write the recursive method testPalindrome which returns boolean value true if string stored in array is palindrome and false otherwise. Method must ignore spaces and punctuation in string.

  Write a second main program that provides a menu

Write a second main program that provides a menu to allow the user to create a course, prompting the user for all of the course information,

  Develop pseudo-code for program to retrieve bytes

Develop the pseudo-code for a program that will retrieve 2 bytes (NUM1 and NUM2) from memory, determine which is closest to the numeric value 50.

  Design a program that asks user enter the amount

Design a program that asks user enter the amount he/she has budgeted for a month. And then use a loop to prompt the user enter each of his/her expenses for the month, and keep a running total.

  Write a class for two instance variables

Write a class named ParkingMeter containing: Two instance variables named timeLeft and maxTime of type int. The value of timeLeft should be initialized to 0.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd