Using a graph, create a mini LinkedIn application. The goal of this assignment is to go from a high-level description of the application to a working implementation, so these instructions are purposely not going to outline what specific classes, methods, etc. to have.
Expected behavior and requirements
Using the command line or a GUI, allow the user to:
- create users
- connect a pair of users
- given a user, display their connections
- query the relationship between a pair of users
- if they are connected, indicate so
- otherwise, provide a shortest path between them or indicate that there is no path of connections linking them
Create documentation (at the very least a basic README.txt file) that explains what your program does and how to use it.
Here are some tips for how to create this program.
- Come up with your design:
- From the user perspective
- What does the expected interaction with the program look like? This is sometimes called storyboarding.
- From the implementation perspective
- What classes do you need?
- For each class, what properties and methods do you need?
- For the methods, write a javadoc comment and method declaration for the expected behavior/interaction.
- Create the skeleton files for your classes with stubs for methods.
- For each method:
- Write pseudocode for how to implement the expected behavior dictated by the javadoc comment.
- Your pseudocode becomes comments which you then implement with lines of code
- Test and debug!
- use your Assignment III: Graphs implementation or ask me for solutions
- modify the breadth-first traversal method to annotate each vertex with the parent and discovery times, using the pseudocode from CLRS as a guide
- use the modified breadth-first traversal to find a shortest path between from one user to another
- create a JUnit test or sample application that tests your implementation
- include an image of your social network to help verify the connections