This was a programming assignment I created as a Graduate Teaching Assistant for Programming Language in Fall 2021 at Rensselaer Polytechnic Institute. The assignment was inspired by the BitTorrent protocol for peer-to-peer file sharing. It was greatly simplified as a lot of students potentially did not have a lot of exposure to distributed computing and because it was in a language that was new to most students (either Erlang or SALSA). I came up with this programming assignment with one other TA who wrote up starter code and an auto-grader for SALSA while I wrote starter code and an auto-grader for Erlang (students had the option to complete the assignment in either Erlang or SALSA). I was also new to Erlang at the start of the course so it was an interesting challenge to learn this new language plus the actor model and create an interesting programming assignment.
The assignment tasks students to create code for a directory service and file servers. The directory service keeps track of the fiels located in file servers. Clients interact with the directory service to upload files, which the directory service breaks into chunks and distributes them among the connected file servers. Clients can also request files from the directory service. The connected file servers act as peers for the client and send chunks to the client which reconstructs the full file. More information is given in the pdf linked below.
As this was created for a class, only the starter code and assignment pdf are hosted here. My implementation of the assignment is not included.