Project

Overview

For the project you will design a contact management system.

The project consists of a design part and an implementation part. The design part is due on 04/15 and an implementation part that is due 05/01. Use one of the group members repositories for collaboration and submission of the code (bitbucket). For more information about git see here.

Administrative Information

Groups

The projects are done in groups of 3 students. Please form groups until 04/08.

Groups will be 3 students each.

Due Dates

  • form groups: 04/08
  • design due date: 04/15
  • final project due date: 05/01

Project Submission

Deliverables are submitted through git. Please inform the TAs and the instructor about which of the group member’s repositories you will use.

We only accept submissions through git!

Deliverables

  • object-oriented design of a model for contact information - this should be submitted by 04/15
  • implementation in Java - this should be submitted by 05/01

Project Requirements

For the project you will design a contact management system. This entails:

  1. design and implement classes for storing contact information such as name, address, email and phone numbers
    • first identify what information you want to model for contacts
    • then determine how this can be modeled as classes
    • keep in mind that not all possible information will be available for every contact
    • write data classes that store such information
  2. implement a class that stores and manages all contacts (a set of contacts)
    • this class should allow addresses to be added, deleted, and searched for
    • use this class to encapsulate handling of contacts
    • searching is the most open-ended part here. At least you should support searching by name where all contacts whose names match the string provided as input are returned, e.g., searching for Pet would return all contacts where their name includes the string Pet
  3. implement support for writing contacts to a file and for reading contacts from a file
    • note that if you want to you can reuse your CSV file management from lab 4
  4. write a command-line or GUI application that allows adding / deleting / and searching contacts

It may be useful to process 1-4 in sequence since they rely on each other.