Project

There are a total of 9 milestones for the project. Milestone 0 is a "warm-up" exercise introducing the class to socket programming. Milestones 1-8 make up the Simster project.

Milestones 0 and 1 are individual projects. Milestones 2-8 are group projects.

We will officially launch the Simster project on February 1st.

Milestone 0 (assigned 1/19, due 2/1)
Milestone 1 (assigned 2/1, due 2/10)
Milestone 2 (assigned 2/1, due 2/17)
Milestone 3 (assigned 2/17, due 2/24)
Milestone 4 (assigned 2/22, due 3/3) -- adding server support for handling multiple connections simultaneously
Milestone 5 (assigned 3/3, due 3/15 --> extended to 3/18 noon) -- integrating client and server into a single P2P application
Milestone 6 (assigned 3/15, due 4/5) -- adding support for message forwarding throughout the network (not just talking to immediate neighbors)
Milestone 7 (assigned 3/15, due 4/12) -- research and class standards setting on Simster network security features
- standards setting meeting on 4/19
Milestone 8 (preview 3/15, due 5/3) -- implementation of security measures (we may post additional details for milestone 8 pending the outcome of the 4/19 standards meeting)


Project Grading Policy

Milestone assignments are due at 12 noon on the due date.
Assignments turned in 24 hours before the due date will receive 5% extra credit.
Assignments turned in *up to* 24 hours after the due date will be penalized 20%.
Any assignments turned in after 24 hours will receive no credit, however we will review it so that you can continue onto the next assignment.

It is important to complete all the milestones in a timely manner since they build upon each other.


Project Submission Instructions

All projects will be submitted via the file submission utility at https://cardea.sims.berkeley.edu/upload/is206/. You should use this for all files, including source (*.java), compiled classes (*.class), and any supporting files or documentation.

Approximately a day or so after projects are due, the instructors will take a snapshot of everything uploaded, and then empty out the upload directories, so they'll be empty for your next project submission.

For group assignments, only one member of the group should upload the group's files; in the documentation, make sure that the names of the group members are all listed.