How "interactive" does this have to be? Play with MiniZinc for a few days, their "IDE" (text editor + syntax coloring + some Solve / Select Solver etc. buttons) is OK enough for iterating something like this. Formulating the problem precisely and correctly into their language would be the more challenging/learning part here. Way more programmer-friendly than the usual solver-system syntaxes out there tho, imo.
This is assuming it isn't something you need your own program / project / code-base to be able to do, but some sort of you-specific local scenario (one-off or repeated). But if the former, you could also check out what solver libs out there are bindable to your lang / stack and seem usable. Maybe G's "OR-Tools", maybe something else.