Git Product home page Git Product logo

applets-java-api's Introduction

Build Status Coverage Status

Vue d'ensemble

Nous utilisons cette API pour centraliser la distribution d'informations vers les clients mobiles.

Liens rapides :

Requêtes actuelles dans l'API

Disponibles dans la collection Postman suivante : Run in Postman

Outils nécessaires

  1. Téléchargez et installez Tomcat 9

  2. Téléchargez et installez IntelliJ IDEA

ℹ️ Vous pouvez obtenir l'Ultimate Edition d'IntelliJ avec votre adresse courriel de l'ÉTS en appliquant ici

Configuration

  1. Importez le projet dans IntelliJ

  2. Configurez le projet dans IntelliJ :

(Onglet Run, Edit configurations)

  • Application server : ici, on renseigne le répertoire de Tomcat
  • VM Options : on rajoute un paramètre pour désactiver le support SNI
-Djsse.enableSNIExtension=false
  • Before launch : on roule gradle en premier pour produire le fichier .war

Le fichier war est compilé dans : build/libs/applets-java-api.war

  • Exécutez le projet pour vérifier qu'il fonctionne correctement
curl http://localhost:8080/rest/partners

Pour configurer les accès à la base de données postgresql, on utilise les variables d'environnement. Elles peuvent être renseignées dans les Run Configurations de IntelliJ, onglet Startup/Connection. Les variables d'environnement à définir sont :

  • POSTGRESQL_USER
  • POSTGRESQL_PASS
  • POSTGRESQL_DB_NAME
  • POSTGRESQL_HOST
  • POSTGRESQL_PORT
  • FACEBOOK_ACCESS_TOKEN

Déploiement rapide

Il est possible de déployer le projet en une ligne de commande grâce à l'utilisation de Docker. Cette fonctionnalité permet de déployer automatiquement le serveur web et la base de données déjà peuplée d'événements/nouvelles de l'ÉTS.

Déployer uniquement la base de données pour tester

Exécutez le script setup_db_standalone.sh à la racine du projet.

La base de données est alors démarrée et peuplée de données de test.

Renseignez ensuite les variables d'environnement suivantes dans votre IDE :

POSTGRESQL_USER = postgres
POSTGRESQL_PASS = postgres
POSTGRESQL_DB_NAME = applets_api_db
POSTGRESQL_HOST = 0.0.0.0
POSTGRESQL_PORT = 5432

(Dans IntelliJ : Run, Edit configurations, onglet Startup/Connection, Environment Variables )

Déployer toute la solution

Renseignez dans un premier temps les variables d'environnement dans le fichier docker-dir/docker-compose.yml, placez-vous à la racine du projet, puis utilisez la commande suivante :

./auto_run.sh

Cela peut prendre un peu de temps la première fois. Connectez-vous ensuite par navigateur à l'adresse : http://{VOTRE_HOST}:8080/applets-java-api/rest/partners

Il existe également un plugin intellij pour docker que vous pouvez télécharger directement depuis le serveur d'applications intégré. Ce plugin requiert docker-machine.

Schéma de la base de données

Schéma de la base de données

applets-java-api's People

Contributors

jasonray avatar marcantvez avatar powereborn avatar ttauveron avatar

Stargazers

 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

applets-java-api's Issues

Produire les requêtes DB du DAO

Description du issue

Le DAO est un patron de conception qui permet de découpler l'interaction avec la DB du programme principal.

Actuellement, on a, respectivement pour les Sources et les Nouvelles, deux méthodes seulement : find(key) et findAll().

Il faut donc remplir le contenu de ces méthodes, il y a un exemple ici : https://github.com/ApplETS/applets-java-api/blob/master/src/main/java/applets/etsmtl/ca/news/db/SourceDAO.java#L14

Pour le findAll() des Nouvelles, il faudrait faire une requête SQL pour ne récupérer que les 10 dernières par exemple, pas toutes sinon ça peut faire beaucoup passé quelques temps.

Configuration

Pour setuper tout ça, il va falloir configurer une DB postgresql en local, voici la version qu'on utilise : postgresql-9.4.

Pour interagir avec la DB, on utilise le client pgadmin3.

Dans le code Java, il faudra remplir les identifiants de connexion à la DB ici :
https://github.com/ApplETS/applets-java-api/blob/master/src/main/java/applets/etsmtl/ca/news/db/ConnectionSingleton.java

Finalement, voici un backup de la DB qu'on utilise actuellement (à restaurer dans pgadmin3):
https://drive.google.com/open?id=0B0MZv7btHQ1IeVZ1eGFXd3F5ZGM

Tu peux ajouter des données de test en DB locale pour vérifier que ça fonctionne bien (genre des sources et des nouvelles)

Attention à pas commiter le fichier ConnectionSingleton.java qui contient les credentials DB (jusqu'à ce qu'on mette en place des variables d'environnement aka pas de setup des creds dans le code)

N'hésite pas à contacter @powereborn ou @gnut3ll4 si tu as besoin d'aide/informations/anything !

Traduire le module du calendrier universitaire

On a un module sur l'API Python qui permet de renvoyer le calendrier univesitaire (date limite abandon cours, etc)
Il est ici : https://github.com/ApplETS/applets-python-api/tree/master/web2py/applications/calendar

Il faudrait traduire cette fonctionnalité dans l'API java en faisant attention à respecter les endpoints et le format des réponses de l'ancienne API pour éviter des complications avec les clients mobiles qui utilisent déjà le module.

Ajouter le schéma de la DB dans le dépôt

Pour pouvoir se setuper une DB local, on va ajouter un backup de la DB ou un script de création des tables dans le dépôt.

Les contributeurs pourront prendre ce script SQL pour remplir leur SGBD postgresql local et faire les tests.

Il faudra tenir à jour ce script lorsque l'on modifie la structure de la DB.

Problème d'accès à l'API Cooptel

Signalés par plusieurs utilisateurs récemment, les problèmes d'accès à l'API Cooptel pour visualiser la consommation internet des résidences étudiantes semblent toucher toutes les plateformes réalisées par les étudiants.

L'onglet "Voir ma consommation" fonctionne toujours sur Cooptel. Les identifiants à utiliser sont de la forme suivante :

  • Votre nom d’utilisateur est votre numéro de résidence, suivi de votre numéro de local. Vous
    devez obligatoirement utiliser la forme suivante : ets-res1-100. Si vous habitez le local 105
    de la résidence 2, votre nom d’utilisateur sera ets-res2-105. Ne pas utiliser de majuscules.
  • Votre mot de passe est votre numéro de local. Vous devez obligatoirement utiliser la forme
    suivante : ets100. Si vous habitez le local 105, que ce soit dans les résidences 1, 2 ou 3, votre
    mot de passe sera ets105. Ne pas utiliser de majuscules.

(source)

Il y a probablement un problème avec les mécanismes d'authentification qui fonctionnaient auparavant mais qui ont dû changer.

Produire le script de fetching

Le script est exécuté en parallèle de l'API Java, il doit être "cron" pour s'exécuter toutes les 2 heures.
Il parse le fichier sources.json et, en fonction du type de la source (facebook, twitter, rss) :

  • Va chercher les nouvelles sur la plateforme correspondante et update la DB (table nouvelles)
  • Va chercher les informations de la source sur la plateforme correspondante et update la DB (table sources)

Le script n'effectue aucune suppression, on garde toutes les vieilles nouvelles pour faire des statistiques plus tard, par exemple. Il fait juste des mises à jour du type "create or update".

Mettre à jour le parser Cooptel internet pour les résidences

Objet : Changement internet dans les résidences ÉTS

Chers résidents, c’est avec plaisir que nous vous informons que depuis quelques jours, les vitesses
ainsi que la consommation internet ont été augmentées dans les résidences étudiantes.

La vitesse en amont et en aval passe désormais de 10 Mb/s à 25 Mb/s. De plus, la consommation
passe désormais à 100 Gigs par chambre individuelle. La consommation est donc maintenant
calculée individuellement.

Procédure pour la vérification de votre consommation Internet

Pour vérifier votre consommation vous aurez besoin :
• De votre numéro d’appartement
• Du numéro de la phase où se situe votre appartement
• De la lettre correspondant à votre chambre.

Si vous habitez dans un appartement à une seule chambre la lettre qui correspond à votre chambre pour vérifier votre consommation est “a”

Pour vérifier votre consommation, il vous suffit d’aller à l’adresse :
http://www2.cooptel.qc.ca/services/temps/index.php
On vous demandera par la suite votre nom d’usager et votre mot de passe.
Comme nom d’usager, vous devez entrer “ets-res<Numéro de la phase>-<Numéro de
l’appartement>-”
Comme mot de passe, vous devez entrer : “ets<Numéro de l’appartement>”
Par exemple si vous habitez dans la chambre “B” de l’appartement 101 de la phase 1. Vous devez
entrer comme nom d’usager : “ets-res1-101-b” (sans les guillemets) et le mot de passe : “ets101”

Si vous habitez la phase 3 vous devez nous contacter par courriel au [email protected] ou par
téléphone au 1 866-532-2252 avec les renseignements suivants pour que nous puissions vous
donner accès à votre consommation :

• Votre numéro d’appartement
• Le numéro de la phase où se situe votre appartement
• La lettre correspondant à votre chambre.
• L’adresse MAC de votre équipement qui est connecté directement à internet (si vous avez un
routeur, c’est celle du routeur) ou l’adresse IP publique que vous avez obtenue et l’heure à laquelle
vous l’avez obtenu (http://monip.cooptel.qc.ca/)

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.