Hi there :-)
I'm looking for someone to implement a prototype for a math-game.
*What is the game about?*
The math-game is about solving exercises like
- Simplify: 2x^2*x+3x^3-y^2-2y^2
- Use the binomial formulas to expand the term: (2x+y)^2
- Solve: 2x+4 = 10
and so on.
*What is the prototype (your job) about?*
The prototype should be a proof of concept for:
- generating exercises
- presenting exercises to the user nicely
- making user type in a solutions via a virtual keyboard (like a calculator) or the real keyboard
- verifying user's input and give feedback (true / false). *Very important*: It must not depend on the order of any term-elements, whether or not the solution is correct (so xy must be the same as yx).
The prototype is *not* about:
- managing users
- Layout / Style (except user-input and presentation of the exercise)
- exercise-details (like difficulty)
The prototype should be a simple roundtrip:
- Client asks backend for exercise
- backend generates random exercise (e.g. "expand (2x+y)^2")
- backend calculates solution ( 4x^2+4xy+y^2) and makes solution persistent for checking user-input
- backend renders exercise to a representation that can be handled by client (here it seems to be the string "4x^2+4xy+y^2")
- Client presents exercise
- User types solution via virtual or real keyboard
- Client sends solution (I guess it will be a string in latex-notation) to backend
- Backend checks solution (Accepted solution for the given example is 4x^2+4xy+y^2 with all permutations), gives feedback and sends another exercise, so user is able to continue the game.
- Ruby / ruby on rails (version 5 or 6) with mysql / mariadb. No jruby.
- Maybe a wrapper for a computer algebra system. (I don't know if there is a ruby-gem out there, which handles the calculation and checks the user's input (solutions of the exercises). Maybe it's easier to build a wrapper for a computer-algebra-system like maxima, axiom or any other (open source!). Verifying solutions in a clean and generic way is one of the core issues of this job!)
- mathquill (http://mathquill.com/) for presentation of exercises and user input (or any similar library)
- Ajax (no websockets)
- no js-frameworks like angular or ember, no react, maybe vue.js
It's your job to develop this prototype. We will use gitlab for collaboration. I expect you to commit often and to accept code-reviews. And of course I expect you to deliver clean and maintainable code. Some tests (rspec) should be a matter of course.
We will talk in German or English via Email or Gitlab-Comments.
If this gets into a promising collaboration, we could build the whole game together later on.
If you are interested: Please tell me about your ruby-on-rails skills and describe a rough (technical) idea of how you would verify user's input (check the solutions).
There's no fix deadline, it's not urgent. But of course you should give a valid estimation on when you can do it.