Final Project Description

Title: Customer Relationship Management (CRM) application for ABC Books

Rationale:

The project is to develop data management application that will manage the contact profiles of an organization called ABC Books. The students are required to develop this application to validate their understanding of programming logic in a programming language. While developing this project the students will have to apply their understanding of the concepts taught in the course lectures. They will have to:

  • Understand the problem statement before writing a program.
  • Understand the purpose and design of a good GUI for the program.
  • Use appropriate data types used in the program.
  • Use appropriate naming conventions while programming.
  • Use appropriate control structures to apply logic in a program to perform a specific task.
  • Use database programming to access and manage data and apply appropriate programming logic to manipulate this data.
  • Handle all type of exceptions and errors that could occur in programs for making their programs robust.

CRM is a popular field in software development. It requires the programmers to work with diverse data types and manipulate data using control structures. This will allow the facilitator to measure the students’ understanding of the concepts covered in Programming 1. In addition designing CRM GUIs will also help the students to understand the importance of GUIs on programs.

While developing this project the students will be able to enhance their programming logic and programming skills as it requires various types of tasks to be accomplished.

Description of the Company/Case:

ABC Books wants you to write a program to manage their contact profiles. ABC Books has a website where new customers can register. After the customer registers with ABC Books, his/her profile needs to be saved in a database. The customer makes financial transactions with ABC Books, and performs various other tasks such as meetings. ABC Books can use the contact profiles to keep track of their customers. The contact profile stores details of each customer of ABC Books and also manages and calculates the total number and value of transactions. In addition it keeps track of the latest activity with the contact. A sample home page of ABC Books site has been provided in the Resources section on IntraLearn.

Note to the Reviewer: This is a hypothetical organization and Web page.

The following data is stored/required for the contact profiles:

  • Organization - While updating the name of the organization where the contact works (or owns) the program should accept any character. Organization name cannot be left blank in a profile.
  • Address 1 and Address 2 - While updating the local addresses, Address 1 and/or Address 2 of the contact’s organization, the program should accept any character. It is not necessary to have two addresses fro every contact. One of the 2 may be left blank in a profile.
  • City - The city name can only accept alphabets and space and cannot be left blank.
  • State - The state name can only accept alphabets and space and cannot be left blank.
  • Phone Number 1, and Phone Number 2 – must be of the form (nnn) nnn-nnnn where n represents a digit between 0 and 9. One or both the phone number may be left blank.
  • Contact Name – The name of the person working in the organization, who must be contacted by ABC Books is entered and stored in two parts as First Name and Last Name. No other characters except alphabets and space should be accepted for the name while updating. Last Name and First Name cannot be left blank in a profile
  • Title - The designation/title of the contact person must only consist of any character.
  • E-mail - The e-mail address conform to the standards such as accepting only alphabets, number, underscore, period and @. It must be entered in the correct form.

Some fields which are not entered on the Web page of ABC Books but are stored in the database and must be managed by your program are:

  • Contact ID – The Contact ID represents a unique ID for every contact. It will be auto generated by the database.
  • Number of Transactions – This represents the number of transaction with the contact. It can only be a positive number. This is set to 0 initially.
  • Value of Transactions - This represents the total value of transaction in dollars with the contact. It can only be a floating point number. This is set to 0 initially.
  • Activity – This represents the most recent activity that is planned or has taken place with the contact. For example “Meeting at 6:00 PM on 29/06/2004” or “Receipt of payment on 31/07/2004”. This may be left blank and can accept any character.

Scope of the Project:

The students will explicitly be provided the project description and a hypothetical web page for staring the project. Apart from these components they will also be provided guidelines, code, GUIs in lectures based on which they will have to design the GUI of the project and then write programs to accomplish the following function of the CRM application:

  • Search and display the profile of contact(s) by location and/or contact ID and/or name and/or organization. Allow users to update the profile. Validate that the inputs are correct before updating the profile.
  • Show the list of contacts with their names and IDs, the number of transactions between the contact and ABC Books and the total value of all the transactions. Update the number of transactions and the total value of transactions for a contact every time a transaction occurs between ABC Books and the contact.
  • Search for a contact using his ID, and display his name, phone number and address. Also display a blank field where the user can enter the latest activity with the contact with the time and date. For example, Meeting at 6:00 PM at our office on 07/06/2004.

Role of the student:

The students will have to write a program that performs all the contact profile management functions mentioned above, such as design GUIs and write programs to achieve the project functions.

To develop the above application the students need to have an understanding of forms, controls, data types, constructs, operators and database access in VB.NET. As they proceed with the course, they will learn one or more of these concepts every week. They have to create a part of the project every week as an assignment. Since they will learn about database manipulation only towards the end of the course, they will have to use dummy value and make assumptions. Related instructions will be given within lectures as well as in assignment statements to help them to implement their learning on the project. As they design and create the interface for the project, they will gain more clarity on the functions of the project and how the application is expected to work. They must read the lectures, text book carefully to develop a good application easily.

Supporting Documents/Samples

  • The Web page (hypothetical) of ABC Books. This page gives the students an understanding of the data that is input from the customer’s before making them a contact. This is essential because CRM will not handle the data input part. It will only manipulate the data. Moreover, this page will give the application a more realistic and industrial look and help the students to understand where the data stored in the databases is coming from. A sample home page of ABC Books site has been provided in the Doc Sharing section.

Other than this no other samples are required because the case study and sample programs discussed in the lectures will demonstrate all the concepts to develop the project. Guidelines or GUI design, use of data types, variables, and programming constructs will be given in lectures. The students can refer to these for developing the programs and the facilitator can refer to these for evaluation. In addition, sample code has been inserted in lectures to demonstrate all the concepts discussed.

Weekly Assignments

Week 1

On Day 4 read the project description. Sketch a design for the forms required for CRM. Share your design with other students as a graphic file (GIF or JPEG format). Comment on the design posted by other students. Give suggestions if required. Finally after incorporating the suggestions given by other students create the forms using appropriate controls and submit by Day 5. These forms and all subsequent forms for the project must be created and saved under the CRM project created in the previous assignment. Also create a login form and a splash screen for the project.

You must also decide on the naming conventions that you will use for your project – for forms, controls and code. Submit the naming conventions in MS Word document as a part of this assignment to the appropriate Discussion Thread. Adhere to these conventions through all the assignments of this course.

Week 2

Assume that the current number of transactions with a particular contact is stored in a variable transNum and the current value of transaction is stored in a variable transVal. Set initial dummy values for these variables such as, 5 and 3450 (dollars). (You may name these variables according to the naming convention adopted by you. You must insert appropriate comments. Now using these variable names and appropriate data types, write code for updating the total value of the transactions and the number of transactions with this contact in the appropriate form. Remember you have to first search for the right contact with which a transaction has taken place and then update the number of transactions and value of transactions.Also code the input validation criteria for each form that reads input from the user using the rules given in the Final project description. You must follow good programming techniques while writing the code.

.

Week 3

Last week you wrote code for various forms of the CRM project. Since we had not discussed modules in that week, you most likely chunked code together. By Day 4 modularize the code appropriately. Add comments to each module stating the reason for creating that module. Apply good modularization practices to the project code and by Day 7 submit to the appropriate Discussion Thread.

Week 4

By Day 3 create an MDI form for the CRM application. The form must have a status bar that displays the function of the child form that is active. Add menus, toolbars or any of the other controls explained in this week’s lectures to enhance the functionality of your application. Also, add the required code for your application. By Day 7 submit the application to the appropriate Discussion Thread.

Week 5

Until now you were designing the CRM application using a dummy value to code and test it. Now you'll be accessing the actual data that is stored in the CRM database you create. By Day 4 create the CRM database in the database server of your choice. You can use MySQL or Microsoft Access. Refer to the structure of the CRM database given earlier in this document. Populate the tables with some sample records. Use this database to code the CRM application completely. All functions mentioned in the Project Description (Week 1) should be fully working after you have completed coding the database access and manipulation. Write modular code and comment on the code properly.

Note: You may also need to change some of the code such as the code for updating the value of transNum and transVal (Week 2).

By Day 7 submit the fully functional application to the appropriate Discussion Thread as you have been doing for the previous weeks.

Add structured exception handling code to at least two blocks of code in the CRM application. By Day 5 submit the final working application to the appropriate Discussion Thread.

Week 6

By Day 2 deploy the CRM application as an installer. By Day 3 submit all the exe, msi and ini files to the appropriate Discussion Thread. The installer must create a short cut for your application on the user’s desktop.