First attempt at: #103
It works, but I'm not sure this is the functionality you were looking for.
It gets the first unsolved problem, not the next unsolved problem.
Pushing this up to start the discussion.
First unsolved problem link
Thank you for your contribution. I'd like to keep the discussion going. I think there are some other issues in the existing codebase unrelated to your pull-request. We're trying to get then next unsolved problem rather than the first unsolved problem so that the user stays within the difficulty. Why did you choose to implement the first unsolved problem?
Mostly because it was easier. Partially because it seemed like a step in the right direction, and I don't think it should be a huge stretch to build off this to get to the next unsolved problem.
What unrelated issues?
I totally agree that it won't be a huge step to build off of this to get to the next unsolved problem. I like the way you think! The next step involves some minor tweaks to how problems are ordered (the somewhat-unrelated issues) both in the UI as well as in the seed file.
I'd like to take the branch you created in your fork, and use it as the basis for a new feature branch on origin with a similar name: "feature/next-problem-link"; its only slightly different, but standards for branch names in our organization is to use dashes and no abbreviations. Your commits will still be on the branch and you'll be added to the list of contributors.
I think the next step will be to continue working and/or collaborating on the feature until we can all agree on the implementation. I think its an important feature to get right, and I'd really enjoy discussing this further. Do you have any other thoughts or suggestions?
Thanks again for moving this forward!
Yeah I had to play with the seeds file to get the problem ordering sorted out. Didn't realize until later that I had basically reimplemented your rake task:
By all means, use the branch as a basis. My cucumber skills are non-existent, so I did it all in Rspec. 😄
What else do you need?
I just created a new branch: https://github.com/SciMed/rubeque/tree/feature/next-problem-link.
I merged your code in there. Any further contributions you make to this feature should go there.
When you're ready to submit another pull request, I'll merge it into the next-problem-link branch.
As for the tests, Rspec tests are great (and greatly appreciated!)
Thanks for telling me about the rake task. I didn't know we had that either! I'm relatively new to maintaining the project so feel free to share anything else you notice :)
So, I think the next step is to make the first unsolved problem link go to the next task of difficulty greater than or equal to that of the task that the user has just finished solving, or if there isn't at that level or above, then go to a problem in the next level of difficulty below the current one until all problems have been solved.
Use Case Scenario: experienced user solves problems one after the other.
Consider this scenario: a rubyist with a non-trivial amount of experience visits the site. So she goes on to solve more difficult problems. She solves a problem, and having an insatiable appetite for coding challenges, she clicks the "next problem" link. If she's redirected to a novice problem to solve, then she'll likely be disappointed or bored. However, if the next unsolved problem she's shown is at least as hard as the last one she recently solved, then the application will continue to challenge her. I believe this is the desired goal.
If you feel up to it, then by all means go ahead and implement the feature described above. When you've gotten to a good point (complete or not), then submit a pull request, and I'll take a look to see if we can merge it in yet.
Again, thank you for contributing here. I'll be sure to put your name in the list of contributors (or feel free to do so on the next-problem-link branch). Cheers!