fuhrmanator / course-activity-planner Goto Github PK
View Code? Open in Web Editor NEWTool for instructors to plan course activities and synchronize the data with syllabus, LMS, etc.
License: GNU General Public License v3.0
Tool for instructors to plan course activities and synchronize the data with syllabus, LMS, etc.
License: GNU General Public License v3.0
As an instructor I want to apply a relative planning for a section to a Moodle course and an ICS of the meetings for this section.
Acceptance criteria:
As of now, everything is hardcoded and interpreted as Montreal local time.
The timezone should be an option or in a configuration file.
E1 S6
instead of E1 S6 S6F
The difficulty is that the Exam activity is defined dynamically from a configuration file. Currently, the activity loader assumes all user-defined activities have 2 dates.
As an instructor I want to upload a course (Moodle backup file) to the server so that it can be used later on to plan a new course.
Acceptance criteria:
I'm following advice from http://solutionoptimist.com/2013/12/28/awesome-github-tricks/
As a user who saves a planning, I'm surprised when I open a saved planning and I see the following:
Why are there saved Moodle events? Saved ICS events? It was my understanding that only the text of the planning would be saved.
It seems very complicated to remember all the details, such as the MBZ, the ICS, etc. The purpose of a saved planning was to re-use it from semester to semester, or from one group to another. So the ICS and MBZ save makes no sense to me.
Plannings with invalid calendars or MBZ are in error but are still registered and listed.
The problem is that the create route does not check the validity of the files. It is only checked when getting the planning as it reads the activities and calendar.
I hacked up an icon for CAP (it's a start). There's a useful favicon generator (all platforms) at http://realfavicongenerator.net/
Here's the zipped SVG (github won't allow uploads of SVG?) and a PNG. Note that I reused icons from CC 3.0 sites (the SVG contains the references for attribution, so we need to put those on the web site of CAP if we use this icon).
I have a quiz at the end of the semester that needs to go until the final exam. Since I don't know when the final exam is, I just leave the quiz open for 12 days or so:
MQ14 S13F S13F+12d
However, when I look at the calendar, it's set to close TWO DAYS after (not 12):
2016-07-27 08:45 Seminar 13 opens
2016-07-27 12:15 Quiz 14 opens Seminar 13 closes
2016-07-29 12:15 Quiz 14 closes
Is it possible CAP is only parsing the single digit before the 'd'?
This is a nice to have. This US should be implemented last.
As an instructor I want to create a relative planning from a Moodle course so that I don't not have to manually enter the relative planning.
Acceptance criteria:
Délivrer une première ébauche de l'architecture du logiciel (diagrammes et technologies utilisés).
Lien vers le plan d'itération!
It would be useful to define a simple grammar for the plan language. Documenting the language would be easier and changes can be more easily coded.
Have a look at the PEG.js online tester for an example of a simple grammar parser. There is something for Python, but I'm not sure how easily it can be used. Perhaps start with a PEG.js version and convert? Whatever the way, this kind of parsing is more robust and easier to modify I think.
I hacked up the following on http://pegjs.org/online:
/* test for CAP DSL */
/* currently parsing works, but no results generated */
/* Javascript goes inside the {} */
Expression
= Rule*
Rule
= head:Activity tail:_ TimingExpression _ EOL {
}
Activity
= head:ActivityCode tail:Integer {
}
TimingExpression
= (_ Timing)*
Timing
/* Case for Session, Labs, Practica */
= head:MeetingSequence TimeModifier? {
}
ActivityCode
= ('E' / 'Q' / 'H')
MeetingSequence
= ('S' / 'L' / 'P') Integer
TimeModifier
= ('S' / 'F') (('-'/'+') DeltaTime / ('@' HHMM)) ?
DeltaTime
= Integer ('m' / 'h' / 'd' / 'w')
/* http://stackoverflow.com/a/20123018/1168342 */
HHMM
= ([0-1]?[0-9] / '2'[0-3]) ':' [0-5][0-9] { return text() }
Integer "integer"
= [0-9]+ { return parseInt(text(), 10); }
EOL
= [\n]
_ "whitespace"
= [ \t]*
which parses these examples:
E1 P6
Q1 S1F S2S@4:00
H3 S4S+2h
As an instructor who teaches the same course in different offerings with different schedules, I want to update dates and times of synchronized activities (in Moodle, SIGNETS and PlanETS) so that the process takes little time and is error-free.
Task List:
Acceptance criteria:
Currently, an MBZ is downloaded as "updated.mbz" -- the course information should be in the file name, such as LOG210-2016-02-01-cap-20160422.mbz, where LOG210-02-01 is course id, semester, session (group) and the date at the end is the date of the plan.
Les dates des activités peuvent être changées dans le document XML depuis le programme, et un nouveau document XML peut être produit avec les nouvelles dates. Le nouveau fichier pourra être importé manuellement dans un premier temps dans Moodle et on vérifiera que les nouvelles dates soient correctes.
Lien vers le plan d'itération!
As an instructor I want to create a new relative planning so that it can be used later to plan a new course.
Acceptance criteria:
Développer un programme pouvant prendre en argument un document XML provenant de Moodle et parser ce dernier afin de récupérer ses informations (type d'activités, dates des activités).
Lien vers le plan d'itération!
Xavier's tool can generate both english and french event descriptions.
Currently, the parser only searches for french strings.
It would be a nice feature to upload multiple ICS files to the same planning.
Each calendar would be linked to a group.
In our initial analysis, we didn't consider Moodle Files as an activity. However, in Moodle, they can have dates for their availability (defining a period when a file can be downloaded). Future versions of CAP could consider this, although it's probably a very infrequent use case.
Cette partie n'a pas pu être implémentée dans le système ActivitETS par manque de temps.
Voici son fonctionnement :
Afin que l'utilisateur du système ActivitETS puisse définir les dates de commencement et de fin des activités comme il le souhaite, un système pouvant être comparé à celui du logiciel Microsoft Project pourrait être implémenté. Ce dernier permet de définir les relations d'une activité avec ses prédécesseurs et ses successeurs. Voici les quatre types de dépendances d'activités que l'on pourrait utiliser :
• Finish to Start : FS
• Start to Start : SS
• Finish to Finish : FF
• Start to Finish : SF
Ces dépendances pourraient être encore plus spécifiques en ajoutant, par exemple, un delta pour le début d'une activité, sa fin ou les deux. Une syntaxe permettrait de facilement configurer le plus précisément possible ces dépendances.
En voici plusieurs exemples, suivi de la signification de chaque propriété :
Modèle de la syntaxe : AA;B;XXXX (voir exemples Figure 9)
Lorsqu'on veut mettre un délai en jour(s), on peut ensuite spécifier l'heure exacte avec @hh:mm. Si on ne spécifie rien, le délai sera défini à la date de la séance moins le nombre de jour(s) du délai. Par exemple le délai pour la date de fin d'une activité : L2;S;-1d@23:59 correspond à la veille (-1d) du début (S) de la séance de laboratoire 2 (L2) à 23 heures et 59 minutes (@23:59).
Grâce à cette syntaxe, l'enseignant pourrait véritablement configurer les dates des activités comme il le souhaite. Un procédé d'auto complétion pourrait aussi l'aider lors de l'écriture de la syntaxe.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.