Overview

This project will give you the opportunity to apply all the skills you have acquired in this class. You will be creating a contacts manager that stores its data in a database.

Required Functionality

The application will provide the basic functionality to manage a list of contacts:

  • Add, update, and delete contact information
  • Import data from a CSV file and store it in the database

Data Requirements

The system should collect the following data for a contact:

  • first and last name
  • email address
  • phone number
  • physical address
  • company name
  • company phone number
  • contact notes - text that the user can enter about the contact

User Interface

You can see a live demonstration of the application at https://youtu.be/nD7wFI- nA5aA

Main Screen

The figure below shows the main application screen. It must appear as shown be- low. You may add styling (colors, fonts) to improve the appearance, however the fields and controls must all be present. see image.

The the buttons on the right side of the screen should only be enabled when a contact is selected in the list.

  • Add: Display a screen that allows the user to create a new contact
  • Edit: Display a screen that allows the user to edit the contact's information
    • This button should be disabled if nothing is selected in the list.
  • Delete: Deletes the currently selected contact.
    • This button should be disabled if nothing is selected in the list.
  • Import Contacts : Opens a dialog box to let the user select a CSV file, and then imports the CSV data into the database.

When the mouse is over a row in the table, information on that row should be dis- played at the bottom, as shown in the green text at the bottom of the image.

Contact Form

The contact form shown below should be displayed when the user clicks Add or Edit in the main screen. When Add is clicked, the screen appears as shown with all empty fields. When Edit is clicked, all the fields should be populated with the data form the selected contact. see image.

    • Save: If this is a new contact, it is saved in the database. If it is an existing con- tact that is being edited, it should be updated in the database.
    • Cancel: Closes the screen without updating the database.

    The window should close when either one of the buttons is clicked.

    Technology

    • You can use either the H2 database or Sqlite3 database.
    • You must use the Flyway and Datasource libraries. A starter project will be pro- vided that is already configured with the required Maven entries.

    Extra Credit

    Add a button to the main screen that allows the user to export their contacts into a CSV file. The file should be sorted alphabetically by last name, and the user should be able to use a standard Save As dialog to choose where to store the file.

    Academic Honesty!
    It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
    Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.