# Problem set generator API to generate random problem sets by subject. WIP for now. ## Format GET request that will return a `application/pdf`, with generated questions, and page of answers. Path would be `https://$url///>` - `Subject` being Math or Physics, - `Theme` breakdown by subject, representing a single chapter in Mechanics by taylor or Multivariable Calculus by Stewart. - `Pages` optional how many pages you would like, default being 1. - On error, a string with api documentation would be returned? (openapi generated docs would be nice) ## Goals - [ ] Create handler function to extract problem request parameters - [ ] Write a question bank by chapter (separate functions to build questions on startup) - [x] Write question text parser, - [x] Write a number generator for questions ( variables encoded in question text with `{{ }}` potentially?) - [ ] Port axum to run on [shuttle.dev](https://www.shuttle.dev/) - [ ] Write a front-end page with a basic form that would open a new tab with the pdf requested on [my website](https://tangled.org/sevenpigeons.ca/sevenpigeons.ca) ## Questions Questions are represented by a `struct` with it's subject, theme, text of the questions, array of min/max values for varibales, and the closure expression for the answer. Since there is an `impl Fn` for now the questions cant really be static so need to be created with a function during runtime. ## Fonts ~I am not sure about distributing Roboto font for now, please add~ I read the license yes I can, the Roboto font is under the Open Font License. In the `fonts` folder, please find the following ttf files: - `Roboto-Bold.ttf` - `Roboto-BoldItalic.ttf` - `Roboto-Italic.ttf` - `Roboto-Regular.ttf` If you wish to change the font, you will have to provide `Bold, BoldItalic, Italic`,and `Regular` ttf files of the font you'd like to use.