This is the backend for Knowin' Notes, a web application intended to teach the user how to sight read piano music. This application was developed as part of COMP 4721 (Software Design) at Mount Allison University in Fall 2024, and I have mirrored the repository here for posterity. The API is written in Java using Spring, with Gradle as the build system.
Requires Gradle 8.10.2, Java 17, and pdflatex
to be installed. Run using gradle bootRun
.
- /api/LIST_REPORTS
- Returns a JSON array containing all reports in the database as JSON objects.
- /api/GET_REPORT?id=
id
- Return the report with ID
id
as a JSON object. - /api/GET_STATE?old=
state
- Given a JSON representation of a state encoded in base-64, return either an updated state as plain JSON or a report as plain JSON if the game has ended.
- /api/GENERATE_PDF?id=
id
- Return a PDF document containing the report with ID
id
.