Giter Site home page Giter Site logo

simplonline's Introduction

Simplonline

Plateforme Formation Ouverte à distance de Simplon.co

Principe

  • Les élèves en présentiel rédigent des contenus représentant le meilleur de ce qu'ils ont appris dans la semaine.
  • Les élèves en présentiel définissent des exercices lors de la restitution du vendredi.
  • Les élèves à distance peuvent accéder aux cours et aux exercices.

Développement / Déploiement

Pour démarrer l'application complète :

foreman start web

Il y a une partie web et un worker qui sert pour la vérification d'exercice. En production les deux seront sûrement séparé.

Installation

Pré-requis :

  • Avoir installé Rails

sudo gem install rails --no-ri --no-rdoc

Dans rbenv, être en environnement ruby 2.1.2

Commandes utiles

    rbenv versions  
    rbenv install 2.1.2
    rbenv global 2.1.2
    rbenv rehash

Avoir installé PostgreSQL

sudo apt-get install postgresql

Avoir installé Redis

sudo apt-get install redis-server

Ensuite, récupérer les fichiers source sur Github :

git clone https://github.com/simplonco/simplonline

Renommer le fichier dotenv en fichier .env :

cp dotenv .env

Fermer puis rouvrir le Terminal.

Entrer dans le dossier simplonline.

Configurer le compte utilisateur dans PostgreSQL :

sudo su postgres

puis

psql

puis

create role sensei with createdb login password 'something';

Pour vérifier que le changement est OK :

\dgh

Pour voir l’aide de Postgres : \?

Pour sortir de la console PSQL et revenir à la ligne de commande du terminal Ctrl D (deux fois !).

Puis installer les gems nécessaires :

gem install bundler
bundle install

Si error pg ------> sudo apt-get install libpq-dev

Puis configurer la base de données :

rake  db:create
rake  db:migrate
rake  db:seed

Pour lancer le site de test en local (localhost port 3000):

foreman start web

Production

Pour le moment, nous déployons sur http://foad.simplon.co

simplonline's People

Contributors

elisefraisse avatar em-ak avatar fbardeau avatar genevieve-duleu avatar giniouxe avatar hafidtraikzi avatar jum-s avatar lauresimplon avatar mehdimed avatar mounahd avatar rfkdali avatar yassinagx avatar

Stargazers

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

Watchers

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

simplonline's Issues

Lexique

En tant qu'élèves présent
Je repertorie les mots importants dans un lexique
Afin de les expliquer et permettre une regroupement de définition

En tant qu'élèves distant
Je peux accéder à un lexique
Afin de voir une liste de mots clé

En tant qu'élèves distant
Dans un chapitre, si un mot est un peu technique ou complique, je peux cliquer dessus
Afin d'en voir une définition.

Scroll Panic?

Can't explain that, got a scroll and load panic on dashboard.

Connexion Localhost

Comment faire la partie connexion quand on est en localhost avec Personna ?

Style d'affichage (a revoir)

En tant qu'élève présentiel
Je peux mettre en avant certain article/chapitre
Afin de faire mettre l'accent dessus.

En tant qu'élève présentiel
Je peux mettre en avant certain article/chapitre
Afin de faire mettre l'accent dessus.

Editeur de markdown

Dans les commentaires de forum, mettre un mot entre _ le met en italique, est-ce un bug ?
Je pense que ce serais pas mal en feature avec un editeur de texte intergré.
Une mise en page plus sympathique plutot qu'un editeur direct.

Demande d'aide

En tant qu'élève à distance
Je peux demander de l'aide
Afin de me permettre de ne pas rester coincé trop longtemps.

Available authors

Pouvoir faire une liste des authors possible parmi les utilisateurs. Ce sont ceux qui sont en présentiel

Tag

En tant que présentiel
Je met un tag sur mon contenu
afin de pouvoir oganiser mes lectures et les type de travaux

Virer carrierwave

virer carrierwave pour stoker le contenu des fichiers d'essais dans la bdd

repris de la liste TODO du fichier README

Simplifier navigation

Difficile de passer d'une session au lexique, d'un chapitre à l'autre.

Difficile de trouver les liens d'édition et de retour.

Auteur d'exercice

Faire fonctionner le lien entre Exercice et auteurs (user) à la façon des chapitres.

fr.yml -> faute

line138
placeholder:
content: "ex; Un avis, une questions"

must be :
placeholder:
content: "exemple: Un avis, une question"

Title in /messages
'Nous avons découvert cette semaine... '
This can be better :
Titre du Message ou Question ?

Convention fichier exercice

Sous quelle convention le fichier doit etre écrit par les distants.
Pour ruby, la convention serait de créer un fichier
app(echantillon) do
foo
end
puts app
On pourrait le faire dans le vérificateur mais pédagogiquement c'est intéréssant d'avoir une "super" methode ? Et ce pourrait etre le premier exercice

Stockage et analyse des réponses QCM

En tant que staff (et autres ?)
Je souhaite avoir accès au trace de réponse (erreur, bonne réponse et nombre de tentative)
afin de pouvoir faire des analyses et des ajustement sur les prochains qcm

Tri des chapitre

En tant que présentiel
Je peux préciser l'ordre d'un chapitre
Afin de rendre l'ensemble plus cohérent

En tant que distant
Je vois la liste des chapitre dans un ordre cohérent
afin de suivre les cours dans un ordre logique.

Ou héberger les fichiers essais ?

Nous avons mis en place les "2" applications (à partir de la même app locale) comme convenu.
Lorsqu'un présentiel créé un exercice, il est inscrit dans les deux bases reddis (sensei et simplonline) Maintenant on bute : sur quelle machine un user distant upload le fichier depuis l'app web pour le rendre accessible au sensei(worker) ? S3 nous paraissait la solution la plus rapide mais c'est à toi de voir.
On se voit vendredi matin pour une petite session et on aurait bien voulu boucler cette histoire de sensei

Page profile

En tant qu'utilisateur
J'ai ma propre page utilisateur
afin de que d'autres puissent regarder mon profil

En tant qu'utilisateur
Je peux voir la page profil des autres utilisateurs
afin de que de voir qui est proche de chez moi

Zone Géographique

En tant qu'élève distant
Je peux retrouver facilement les autres éléves distant autour de moi
Afin de pouvoir rencontrer en vrai d'autres inscrit à la FOAD.

selection des auteurs

Permettre une selection des auteurs plus facile:

  • voir tout les auteurs possible en une fois (pas de scroll) => Checkbox ?

Mettre à disposition

En tant qu'élève en présentiel
Je peux mettre à disposition du contenu qui sera disponible pour une date précise
Afin de permettre l'accès à ce contenu de la part des élèves distant.

Auteur de QCM

Faire fonctionner les auteurs sur le QCM (utiliser le même genre de liens que fait sur les chapitres).

Ne pas voir ce qui est interdit

En tant qu'élève distant
Je ne peux pas voir les sessions non publique
Ni accéder en tapant l'url aux interfaces de modification
Afin de laisser les présentiels et le staff gerer les sessions et leurs contenus

Touver un nouveau nom officiel pour cette app

Pour communiquer un de ces jours sur le fait que notre plateforme de formation à distance est sous licence libre,

  • il serait bien d'avoir un nouveau nom un peu plus cool
  • trouver la licence qui nous conviens

Test EDX

Je me rend compte que nous n'avons même pas laisser une change à une plateforme existante.

Pourriez vous tester edx au moins, et me faire un retour sur l'usage en tant qu'élève exterieur (je suis des cours je fais mes exo), et élève intérieur (je cré les cours et je cré les exos).

Merci :-)

Création d'exercice

En tant qu'élève en présentiel,
Je crée un exercice avec un énoncé et un moyen de validation (code ?)
Afin de pouvoir ajouter des exercices de validation d'acquis pour chaque leçon.

Chapter invalid without authors

Un chapitre ne devrais pas pouvoir être valid dans auteur. Mais la dépendance sur un has_many through semble un peu complexe à construire pour vérification.

Besoin de creuser un peu plus pour tourver comment faire. Un test est mis en skip sur le sujet dans le model chapitre, mais il faut le mettre aussi pour les qcm et autres élément lié à une session.

Pouvoir s'identifier

En tant qu'étudiant à distance,
Je souhaite pouvoir m'authentifier
Afin de pouvoir acceder au contenu de cours
Ainsi qu'au exercices

Convention pour les formats

définir les formats d'exercice.echantillon et essai.reponse

repris de la liste de TODO du fichier readme

Translation

Translation missing at Lessons/ID/chapters/ID/edit
at lessons/ID/qcms/ID/questions/ID/edit

Ebook

En tant que simplonlinien (present et distant)
Je peux télécharger une session sous forme d'ebook
Afin de pouvoir le consulter offline

(peut-être en pdf ou epub ?)

basse priorité pour le moment.

Timestamp presence

En Tant qu'administateur et organisateur des cours
Avoir une trace de chaque requête par utilisateur (date/heure utilisateur et lien)
Afin de pouvoir justifier de la participation de chaque utilisateur pour le DIF ou autres.

Javascript Runtime ?

➜  sensei git:(master) ✗ rake -T
rake aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/home/yaf/Code/sensei/.bundle/gems/execjs-2.2.0/lib/execjs/runtimes.rb:51:in `autodetect'
/home/yaf/Code/sensei/.bundle/gems/execjs-2.2.0/lib/execjs.rb:5:in `<module:ExecJS>'
/home/yaf/Code/sensei/.bundle/gems/execjs-2.2.0/lib/execjs.rb:4:in `<top (required)>'
/home/yaf/Code/sensei/.bundle/gems/uglifier-2.5.1/lib/uglifier.rb:3:in `require'
/home/yaf/Code/sensei/.bundle/gems/uglifier-2.5.1/lib/uglifier.rb:3:in `<top (required)>'
/home/yaf/Code/sensei/config/application.rb:8:in `<top (required)>'
/home/yaf/Code/sensei/Rakefile:4:in `require'
/home/yaf/Code/sensei/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

From a fresh install...

Suppression de définition

En tant qu'élève présent
Je peux supprimer une définition
afin de pouvoir nettoyer le lexique si une définition ne sert plus à rien

Attention à penser à supprimer les liens qui aurait pu être crée vers cette définition.

QCM

En tant qu'élève présentiel
Je peux des créer des QCM a partir d'un formulaire sur l'app ou bien d'un fichier JSON brut
Afin de permettre aux formés à distance de répondre dans un format type memrise aux questions posées (question répondue une par une, avec explications si réponse fausse)

Css

Font size des titres à revoir.

Page contact = 404

La page de contact est mal configurée.
Impossibilité d'envoyer un message par la page /contact

Feature Password

Can't change password without reset it.
Can be a feature in /users/ID

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.