CSCI 250 - Scalable Software Design and Development
Spring 2017
Programming Project 2: Peer-to-Peer Networking
Overview
In this project, each team will develop a distributed peer-to-peer network
application. Multiple users, sitting at different machines, all run their
own copies of the application. In order to connect with each other, one
user must be aware of the IP address of another user. Once two users
are connected, they can share the IP addresses of other users with whom
they have a mutual connection.
Ideas
Each student will write a requirements document specifying a software
artifact that will solve some particular problem using the medium of
peer-to-peer networking. Possible ideas include (but are by no means
limited to) the following:
- A multi-player game
- A file-sharing system
- A real-time social network
Sample code
This file contains a command-line server that echoes back each message it is sent from each client:
These three files represent a GUI client implemented using JavaFX:
Teams
This assignment will be completed in teams of three or four. Teams will be
assigned in class on Friday, February 17.
Deadlines
- Wednesday, February 15:
- Use cases, first draft
- Bring hard copy to class
- Friday, February 17:
- Use cases, final draft
- Bring hard copy to class
- Submission of preferences
- Assignment of teams
- Wednesday, February 22:
- Oral presentation
- Demonstration of user interface
- Proposed division of labor
- Targeted features for first iteration
- Revised use-case document
- Wednesday, March 1:
- Thursday, March 2, 5 pm:
- First code review due
- Each team member will write an individual review!
- Wednesday, March 8:
- Final system demo, during class
- Thursday, March 9: