I’ve never worked as a dev for my life, but I spent quite some of my spare time to do programming. I’m also going to write a math textbook, but the task is repetitive and I don’t know how to automate it.
There is one thing that I tried to build for years, and failed a few times: a system that generate math problems and their corresponding solutions for different problem types. I know a bit of Python and sympy, I may need to twerk sympy a bit to get the results I want, but probably manageable. The ability to export to MSWord/Latex is a plus, but I’d say forgetting about it now because you need to write a lot of raw OOXML even if using python-docx and documentation is basically non-existent.
I start with writing small scripts a few times to try and make it happen. Every time after lots of hours spent, I know my code is a mess and I throw it away.
The ideal project would be to write code for about 20-50 math topics, each with 20-50 problem types. Writing a base class for each topic and inherit from it, may or may not work. There is a lot of repetition. Writing the case to create a problem and solution of quadratic equation of the form “ax^2+bx+c=0” is easy. 50 problem types later where you run out of class names that you could imagine where you are trying to do “(ax+b)(cx+d)=e(fx+g)” and at most two parameters can be a fraction and the equation must have rational solutions and the solution differs whether cx+d and fx+g have a common factor, I don’t know what could I do about it. Maybe there is some pattern in software architecture I don’t know?