In this project, we are going to develop a mini social networking application called, MasonConnect. A social networking service or SNS (sometimes called a social networking site) is an online platform, which people use to build social networks or social relationships with other people who share similar personal or career content, interests, activities, backgrounds or real-life connections. Most social networking apps use graph data structure as one of the underlying data structures.

In this project, you will build a simple social networking app that uses graph data structure.

This project will be built using a number of classes representing the component pieces of the MasonConnect. We are going to use built-in java classes and interfaces extensively for the implementation of the project. Below are the descriptions of these classes and interfaces.


An overview of the requirements are listed below, please see the grading rubric for more details.

  • Implementing the classes – You will need to implement required classes. The following are list of Java classes and interfaces you may need to use in the project:
  • o HashMap

    o Iterator

    o Queue

    o LinkedList/ArrayDeque

    o List

    o ArrayList

    o Stack

  • All attributes should be declared as private or protected.
  • JavaDocs – You are required to write JavaDoc comments for all the required classes and methods. Check provided classes for example JavaDoc comments. • Big-O – Template files provided to you contains instructions on the REQUIRED Big-O runtime for many methods. Your implementation of those methods should NOT have a higher Big-O.
  • Testing

    The main method provided in the template file contains useful code to test your project as you work. You can use command like “java Driver2” to run the testing defined in main(). JUnit test cases will not be provided for this project, but feel free to create JUnit tests for yourself. A part of your grade will be based on automatic grading using test cases made from the specifications provided. Some of the screenshots of the expected output for the command java Driver2 are given at the beginning of this document.

    This is the summary of the document. Please read the description and the rubric carefully before starting to understand deeply.