Giter VIP home page Giter VIP logo

aubds / 1-hei-connect-web Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ldavin/hei-connect-web

0.0 0.0 0.0 45.19 MB

Une application web utilisant l'API hei-connect pour créer un intranet parallèle pour les étudiants de l'école d'ingénieurs HEI / A web app using the hei-connect API to create a parallel intranet for HEI Engineering School students

Home Page: http://www.hei-connect.eu

License: GNU General Public License v2.0

JavaScript 0.01% Ruby 78.64% CoffeeScript 3.05% CSS 2.58% HTML 15.71%

1-hei-connect-web's Introduction

HEI Connect Web

Code Climate Coverage Status Build Status PullReview stats Stack Share

Description

En bref

HEI Connect Web est une web-app utilisant HEI Connect pour récupérer les données (planning, notes et absences) des élèves de l'école d'ingénieurs HEI et les leur présenter de manière simple, efficace et rapide.

Le projet est sous licence GPL v2.

HEI Connect / HEI Connect Web, quelle différence?

HEI Connect est une API (interface de programmation). Dans la pratique, c'est une sorte de "robot" à qui on fournit des identifiants, puis qui navigue sur e-campus, lit le code source de certaines pages, et en extrait les informations intéressantes qu'il retourne dans un format générique.

HEI Connect Web est un site internet qui utilise cette API, en stocke les résultats dans une base de données, et les traite de manière à les présenter à l'utilisateur avec une certaine valeur ajoutée (planning dynamique, graphe de la moyenne, calcul des moyennes de chaque examen, graphe du nombre d'absences en fonction du temps...)

Et plus précisément?

D'un point de vue technique, HEI Connect Web est un projet écrit en Ruby, basé sur le framework Rails. Nous sommes conscients que ces deux technologies ne sont pas enseignées à HEI, et qu'il aurait été plus facile de profiter de la participation des élèves (notamment de la majeure informatique) au projet s'il avait été écrit en PHP. Cependant, l'environnement Ruby/Ruby on Rails permet un gain de productivité énorme par rapport au développement traditionnel en PHP. Si vous êtes un "geek" et que vous hésitez à participer, franchissez le pas. L'investissement vaut vraiment le coup.

L'application est hebergée sur deux serveurs dédiés KimSufi.

Comment contribuer

1. Installer Ruby et Ruby on Rails (et autres)

Il y énormément de tutos sur internet pour installer tout ce qu'il faut, nous recommandons RailsInstaller qui est souvent la solution la plus simple. Dans tous les cas, vous devez avoir les paquets suivants installés sur votre PC:

  • Ruby (version définie dans le fichier .ruby-version)
  • RubyGems
  • Git
  • SQLite

2. Récupérer le code

  • Forquez le projet
  • Clonez le code

3. Installer les gems

Les "gems" sont des paquets (librairies) écrits en ruby. Pour éviter d'avoir à ré-écrire constamment les même fonctionnalités propres à la plupart des sites internet, l'application utilise un certain nombre de gemmes. Le fichier Gemfile liste toutes les gemmes utilisées. Pour les installer, lancez un simple bundle install dans la console depuis le repertoire de l'application.

4. Créer la base de données

Avant de pouvoir lancer l'application, il vous faut créer votre propre version de la BDD. Executez un rake db:create db:schema:load, cela créera une base de données sqlite (development.sqlite3) dans le sous-dossier db/ de l'application. Voilà! La partie "installation" est terminée.

5. Lancer les background jobs

Avant de lancer le serveur local, lancez l'instance delayed_job avec un script/delayed_job --queues=regular,grades start dans une console.

L'application utilise un système pour pouvoir effectuer des tâches en arrière plan, qui ne ralentiront pas le chargement de la page. Par exemple, lors de la création d'un compte, l'application doit aller demander à l'API HEI-Connect si le compte est valide. Cette requête prend plusieurs secondes (5 à 10), et on veut éviter de bloquer le chargement de la page pendant ce temps.

6. Lancer l'application

Maintenant que tout est installé et que les différents services sont lancés, il n'y a plus qu'à faire un petit rails server, et c'est tout bon!

Rendez-vous sur http://localhost:3000 pour naviguer sur l'appli.

Récapitulons

Avant de lancer le serveur local:

  • Mettre à jour la base de données rake db:migrate,
  • script/delayed_job --queues=regular,grades start pour lancer les background jobs (utilisés par l'application pour passer les appels à l'API, et récupérer les données e-campus)

Puis rails server, ou rails s pour lancer le serveur local. Vous pouvez alors bidouiller le code de l'application, et un refresh dans le navigateur affichera les modifications.

Une fois terminé, Ctrl+C pour arrêter le serveur local, script/delayed_job stop pour arrêter le worker des background jobs.

Sauvegardez vos modifications et propagez-les

Au fur et à mesure de votre travail, sauvegardez vos modifications sur votre dépôt git. Une fois satifait du résultat, retournez sur la page github de votre fork, et lancez une "pull request".

Cela ouvrira une "pull request" sur github, où l'on pourra discuter de vos modifications, et les intégrer au dépôt principal.

Pour en savoir plus

Pour comprendre ce que vous faites (et ce que vous avez fait en suivant les étapes 1 à 6), on vous recommande de vous plonger dans l'un des très nombreux tutos disponibles sur internet. Préférez les versions anglaises (oui...). Rails demande un certain investissement (le framework est dense, et il faut appréhender le Ruby), mais encore une fois, ça vaut le coup!

Les projets autour d'HEI-Connect

HEI-Connect

L'API de base permettant de récupérer en JSON des données depuis e-campus. Projet GitHub

Une application web communiquant avec HEI-Connect, visant à créer un e-campus "parallèle", plus rapide, plus simple d'utilisation, avec de nouvelles fonctionnalités. Projet GitHub

1-hei-connect-web's People

Contributors

stanboyet avatar ldavin avatar

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.