Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated installation instructions and refactored the exercise creation mecanism. #53

Open
wants to merge 87 commits into
base: verifications
Choose a base branch
from

Conversation

plafrance
Copy link

Hi, I finally came across this site and found it amazing! I have been looking for a while for a good learning tool for my students and this one was exactly what I needed. Thanks for this great tool!

Unfortunately, when the time came to create exercises of my own, I found it quite difficult. Working on different branches resulted complex and counter-intuitive to me. I fear that any change or correction made to an exercise required to force push and break everyone else's repo.

So I undertook the task of facilitating the process of creating exercises, as well as the installation process.

The changes I made are not small, I am afraid. But they allowed me to create 10 new exercises, as well as decoupling the main repo from the exercises repo, hence providing a french version of the exercises to my students.

Changes :

  • Everything is now on a single branch (main). The exercises live under the exercises directory. The branches needed are created at buildtime from its content. There is no need to rewrite commits with every change anymore. Development history is linear.
  • The whole installation process is automated using docker-compose (database creation included)
  • Added an optional teardown script after each exercise. It allows for reverting the state of the repo like destroying branches or remots created during the exercise.
  • Added an optional local verification script before pushing an exercise. It allows for making an initial check before pushing the solution.
  • Decoupled the main repo from its source of exercises. Optionally, one can fetch the exercises from a altenate source, allowing for custom or specialized exercises.
  • 10 more exercises, in the very beginning, allowing for a more gradual increase in difficulty.

Caveat :

Whenever the containers are recreated (for instance, when adding a new exercise), all exercise branches are also recreated. The local repos will become out of sync with the server's. This can be fixed on the client-side by fetching the remote again (git fetch origin). Maybe there is a way of displaying a error message to the client whenever that situation occurs.

I hope you will find those changes as useful as I found your exercises!
Thanks

fracz and others added 30 commits October 5, 2015 08:58
Among changes:
 - dockerfile triggers build of frontend and backend
 - php more configurable from docker/.env
 - removed some unused stuff
 - small readme on how to run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants