mkrupczak3 / CS4504-PROJ

This project is deprecated. Please move to mkrupczak3/CS4504-PROJ-P2
0 stars 7 forks source link

CS4504 PROJ 1 P1

Members:

documentation report working group

benchmarking working group

Description

Enclosed in this repository is the code and the project documents we will be using for this project. See project specification part 1 and part 2 for details

Operation Guide

Clone this repository to your disk, then enter the project directory.

Run the Router program:

javac src/*.java
java src/TCPServeRouter.java

OR

docker-compose up --force-recreate -t 1

Run the Server program:

javac src/*.java
java src/TCPServer.java <router IP> <client IP> <port number>

Run the Client program:

TXT mode:

javac src/*.java
java src/TCPClient.java localfilename.txt <router IP> <server IP> <port number>

base64payload mode (any filetype other than .txt):

javac src/*.java
java src/TCPClient.java song.mp3 <router IP> <server IP> <port number>

(Alternative) Run all parts locally with docker-compose:

Running all parts locally requires Docker and docker-compose to be installed first.

Router only (and publish 5555 on host):

docker-compose up -d --force-recreate -t 1

All parts, txt mode:

docker-compose -f docker-compose-test-local-txt-mode.yml up --force-recreate -t 1

All parts, base64 mode:

docker-compose -f docker-compose-test-local-base64-mode-audio.yml up --force-recreate -t 1

Docker Troubleshooting

If your shell complains about a network address not being available, run the following:

docker-compose -f docker-compose-test-local-txt-mode.yml down -t 1
docker network prune

If containers are erroring out, rebuild them from source (bypassing the stale cache):

docker-compose -f docker-compose-test-local-txt-mode.yml build --no-cache

Project Responsibilities

Documentation Working Group

The responsibilities of the documentation working group include:

  1. Audit the codebase and add inline comments (Javadoc or otherwise)

    Fork this repository to your account, add your comments, then commit, push, and create a pull request from your fork to this repository. See this link detailing the process

  2. Provide the benchmarking working group with actionable insights for standing up a lab environment

  3. Create a user guide document describing the process for running the lab environment (see sample document here)

  4. Write a report based on the benchmarking data from the lab environment, according to the project specification

  5. Assemble the final deliverable as a .zip archive, due Mon 02/13 at 11:59pm

Benchmarking Working Group

The responsibilities of the benchmarking working group include:

  1. Fix bugs and make the project executable in a lab environment

  2. Containerize and automate the build process

  3. Make a process which can be run entirely local for testing

  4. Bring up a lab environment and test using multiple computers

  5. Benchmark performance and statistics in a lab environment using multiple computers

  6. Provide context and assistance to the documentation working group as they assemble the report and user guide

TODO