GeorgiaTech-DDI / makerspace_dashboard

1 stars 0 forks source link

Add Endpoints for Live Data - 3DPrinterOS #5

Open cgensheimer opened 1 week ago

cgensheimer commented 1 week ago

Basically rough todos:

Authorization Endpoint

use login and check_session from 3dprinterOS to dynamicaly check or provide the current session, implement as middleware for all routes or just a function that can be wrapped around the api handler.

Queue/Status Endpoint

leverage /get_organization_printers and /get_printer_jobs to provide a total count of the number of jobs in queue, completed, and failed Status_id: 11 - in queue, 21 - in progress, 43 - job failed, 45 - job aborted, 77 - job finished. support pagination

Bar chart potentially?

Timing Per Printer

Use /get_printer_jobs and /get_job_info to provide time spent printing for jobs in progress, and estimated time for jobs in queue, support pagination

List view probably?

Cost and Material Per Printer PI PROTECTED?

use /get_custom_report with type json to get the total cost and material of all jobs in the past month and last week, allow for filter by printer_id as a parameter.

can be shown as a bar chart comparing each printers cost and material used in the last week and month

Cost Over Time PI PROTECTED?

use the same endpoint but generate 4-5 datapoints based off the cost of materials

line chart

Average Print Time

use the same endpoint but provide an average print time per printer

bar chart

Percent successful

again same thing, aggregate the statuses between done jobs and cancelled

Average jobs completed per day or week

aggregate done jobs by day and provide number

Most common reasons PI PROTECTED?

aggregate the common print purposes for a bar chart or list view (theres 4 or so categories that are constant beyond any custom note)

Jobs leaderboard?

List users with the most completed prints for the week?

cgensheimer commented 1 week ago

https://docs.google.com/document/d/e/2PACX-1vRY_ai3HBGDm70gtTgOhka48LWSLGnGTfpffKZ7b7vFf7MuRwh7xi5rhi6k-Frdyc6a4_wFpG1uSjp7/pub