Developed by mkron
, ipinedad
, conwuadu
, Patback0
Github Repo: https://github.com/cs0320-s2023/final_project_print_queue
Project spec: https://docs.google.com/document/d/1KhQjlAZPWq2Juw_vbPNj1rrShd86_1cfsPRRaeLaHA8/edit?usp=sharing
TODO
backend
backend entry point.queueclasses
Main handler and supporting datatypesJob
record that represents jobs waiting for or printing or assigned to printersPrinter
Represents individual printers and holds information about their statesStatus
Enum used to encode printer statesJobQueue
A Queue data structure for jobsQHandler
Main handler
Server
contains handling for GeoJSONsAPIUtilities
helper functions for the APIserver
runs the spark server
Frontend
TODO
backend
unitTesting
tests the various commands accessed through qHandle, both individually, and in set sequences to ensure that state works properlyfuzzTesting
generate random API calls roughly in the form expected by the backend and tests for non-200 result codes to ensure that all errors are handled properly by the API.
qHandle
the only api endpoint. can be invoked with a variety of "command" parameters, producing different results. Commands:enqueue
Takes "user", "contact", "duration", and "imgUrl" paramaters, produces a job, and adds it to the queuerejectQueue
Takes "user" and "contact" parameters, and removes Jobs with the specified contact from the Queueupdate
takes a "printer_name" and a "filament", "status", or both. updates the specified printer to the specified filament and/or status.rejectPrinter
takes a "printerName" parameter, sets the specified printer to "availible", and remvoes the current jobclaim
takes a "printerName" parameter for a pending printer, and sets it to busygetState
sends back a full image of the print queue, and the state of each printer
TODO
TODO for frontend
TODO for people who did deployment