-
Notifications
You must be signed in to change notification settings - Fork 0
Sprint 1
This is the first coding sprint of the project which aims to have a core API in place to allow the development of a very simple plugin and theme. Plugin and theme will be automatically detected and no admin user interface will be created.
Deadline: 2013-06-30
To implement the core API a few actions have been chosen to be used in the first implementation to make sure everything is working as expected. These actions have been chosen since they match the basic pattern of what a plugin developer is most likely to care about and they should represent the other actions fairly.
- Before HackademicController shows page:
'render_page'
- Before render challenge:
'render_challenge'
- When challenge has been tried:
'tried_challenge'
- When challenge is completed:
'completed_challenge'
The naming of the actions is critical for the semantics of the API. If the names are logical, structured and makes sense the API will be much easier to use for developers. I suggest a pattern where where actions are named as [verb]_[noun], for example 'render_challenge' before a challenge is rendered and 'tried_challenge' when a challenge try has been made.
When developing the plugin which use the actions above the following use case will be considered.
A university have decided to use Hackademic in their classes. The want to integrate Hackademic into their university system in a way to fulfills the university's graphic profiel and also that integrates into other school systems such as grading and feedback.
They want the students to have the feeling of the hackademic site being part of the main university site. Therefor a theme needs to be developed.
They want to trigger events that notify teachers when a challenge has been started, tried and completed to be able to integrate hackademic into other systems.
In this short scenario it will be considered finished if an e-mail can be sent on the events triggered and the theme can be loaded from a special theme folder where 3rd party themes are located.