Giter VIP home page Giter VIP logo

daigaku's People

Contributors

paulgoetze avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

kennethlarsen

daigaku's Issues

Add markdown helper for Ruby doc link

In the task view I want to be provided with a Ruby doc link to learn more about certain Classes.

To make adding a doc link easy for course creators, it would be nice to have a markdown tag to use in the task.md for displaying the doc link in the terminal.

Needs a Wiki update for markdown syntax for task.md file.

Improve the way of storing the "mastered" state of units

We use a YAML::Store file as a simple local key/value database for storing the state of units.

By now the full path of the solution file is used as the key, so that a units state is saved, e.g. like
"/home/user/daigaku/solutions/Get_started_with_Ruby/1_Introduction/2_Hello_World_solution.rb": true

This does not allow to change the courses directory without loosing the state of the already mastered units. The key should instead be a combination of course, chapter and unit name (maybe even case independent and without leading numbers, so that an author can easily change the order and spelling of courses, chapters, and units without breaking the users's states), like:

"get_started_with_ruby/introduction/hello_world": true

Add Author functionality for a course

For a course downloaded from a Github repo I want to see who the author is.
The name should be displayed beside the course name, like

Get started with Ruby (by daigaku-ruby)

This comes with the question how to store the author information (in the Daigaku database, or another meta data file in the course's directory).

  • If we also consider other sources for courses (links to *.zip files) it seems to be the better idea to use a meta data file in the courses directory which can be added manually to a course to provide the author's info. For Github sources this file can be created automatically, if it is not present.

Needs an update in the Wiki for "Adding meta information to a course"

Solution file scaffolding creates additional folder

If there is e.g. a README.md in a courses base directory running daigaku scaffold creates an additional folder in the configured solutions directory (besides the wanted course directory with chapters and solution files).

This appears because the generator looks for all *.md files in the courses path.

This additional folder should not be created, i.e. *.md files in the base path should be ignored.

Show which courses have been updated

  • As a learner I want to see which courses have new content (i.e. which courses were updated and should be downloaded again). I want to be notified in the courses menu by a phrase like "new contents are available".
  • I also want to update my course without leaving the Daigaku screen, i.e. by using a shortcut key (u for update?).

An approach might be storing and comparing the pushed_at attribute (timestamp) for a Github repo by requesting the Github API (e.g. see https://api.github.com/repos/daigaku-ruby/get_started_with_ruby).

Needs a Wiki update for available shortcut keys in the Daigaku screen.

ruby-doc parsing bug/error for special characters

Snippets like (ruby-doc core: Array#<<) are parsed with an additional /<method> before the .html

http://ruby-doc.org/core-2.3.0/Array/<<.html#method-i-3C-3C

For snippets like (ruby-doc core: Array#any?) the daigaku screen crashes with error:

[...] daigaku-0.2.0/lib/daigaku/window.rb:148:in `print_markdown': 
undefined method `gsub' for nil:NilClass (NoMethodError)

Show shortcut keys of task view

If I am in the task view, I want to see the available shortcut keys:

  • o for opening the solution file in the default text editor
  • v for verifying code
  • c for clearing the screan (hide verification results)
  • UP/DOWN for scrolling text
    *...

Unnessecary shortcut keys (like ENTER) should be removed from the top bar in the task view.

Delete courses

I want to be able to delete courses using the command line interface.

Something like: $ daigaku courses delete [COURSE_NAME].

Needs a Wiki update for available CLI commands.

Wrong parsing of ruby-doc markdow helper

Allow escape in markdown syntax

If I use * or #, etc. in my task.md text this characters will not be displayed. It should be possible to escape these characters by a backslash, like: \* and \#.

Using a unit's reference solution code (solution.rb)

By now the reference solution code is not used in any way.
The basic idea behind reference solutions is that it can be shown to the user, e.g. after all tests passed or maybe on a 'hint' short key in the task view.

The reference solution code should be written by considering Ruby best practices and conventions, so that the user can compare his/her own code to it and learn from it.

This should also be added to the Wiki.

Remove old chapters on course update

If I update a course and the name of the chapters or units has changed, the old ones will still be there.
Old course data should be removed on updating.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.