Giter Site home page Giter Site logo

ungdev / etuutt Goto Github PK

View Code? Open in Web Editor NEW
19.0 9.0 14.0 46.23 MB

Site étudiant de l'UTT

Home Page: http://etu.utt.fr

License: MIT License

PHP 65.39% Smarty 0.13% HTML 0.26% JavaScript 2.50% Shell 0.14% Twig 28.66% SCSS 2.92% Dockerfile 0.01%
hacktoberfest

etuutt's Introduction

EtuUTT

EtuUTT est la nouvelle version (2013) du site étudiant de l'Université de Technologie de Troyes.

Originellement développé par Titouan Galopin au sein de l'association UTT Net Group (l'association étudiante d'informatique de l'UTT), le site étudiant propose des outils et des services à tous les étudiants pour faciliter leur intégration et leur vie de tous les jours. Il contient aussi des espaces d'échange et des raccourcis vers les différentes plateformes en ligne de l'école.

Cette refonte de 2013 a pour vocation d'améliorer les performances, le design et la qualité du code. Ce projet utilise Symfony 3.1

Documentation

La documentation est disponible sur https://github.com/ungdev/EtuUTT/wiki. C'est un travail en cours, n'hésitez pas à nous contacter si jamais la ressource recherchée est manquante… De la documentation est aussi disponible sur le site étudiant directement : https://etu.utt.fr/wiki/view/general/etuutt/developpeur/installer-une-version-locale-d-etuutt

Lancement du serveur en local

  1. Il vous suffit d'avoir docker et docker-compose d'installés
  2. Copiez le .env en .env.local et éditez ses caractéristiques. Pensez à éditer le UID et à mettre le votre afin de pouvoir monter correctement votre code source dans le container.
  3. Lancez le tout : docker-compose up -d
  4. Connectez-vous dans le container : docker exec -it etuutt_etuutt_1 bash puis initiez le site
./composer install
php bin/console doctrine:schema:update --force
php bin/console doctrine:fixtures:load -n
php bin/console etu:ue:import
php bin/console etu:badges:import

Pour créer les scopes API : php bin/console etu:oauth:create-scope. Les différents scopes : public, private_user_organizations, private_user_schedule, private_user_account

Pour lancer une synchro avec le LDAP UTT (nécessite d'être sur le réseau UTT), ASSUREZ-VOUS QUE LES MAILS SONT DESACTIVES (env ETUUTT_MAILER_HOST vide), php bin/console etu:users:sync

  1. Rendez-vous sur http://127.0.0.1:8000 pour voir le site (avec l'id user/user ou admin/admin) et sur http://127.0.0.1:8080 pour voir adminer. Cela permet d'éviter d'installer nginx et de devoir tout configurer

Traduction

Tous les jours, les différentes chaînes pouvant être traduites sont importées sur notre projet Transifex.

Vous pouvez alors en traduire, remonter des erreurs, demander de nouveaux langages… La création du compte est bien sûr gratuite ! Ouvrez juste une issue ou envoyez-nous un message quand vous voulez que l'on intègre vos modifications sur Github.

Déploiement continu

Ce projet utilise l'intégration continue (TravisCI), et la branche master est directement à jour avec la production. Ce dernier est déployé sur un cluster openshift. Chaque push déclenche une reconstruction de l'image et la mise à jour automatique de la version en prod (Rolling Update)

Branche dev (développement) : Build Status

Branche master (production) : Build Status

Crédits

etuutt's People

Contributors

alabate avatar albansdl avatar arnaud11g avatar beaunenuits avatar bj0rge avatar blendman974 avatar chrisdautume avatar cyprieng avatar hugocollignon avatar jdorel avatar kevin-p avatar larueli avatar lonk avatar momalkiah avatar mrgabigoo avatar nashe avatar paulchabanon avatar punkeel avatar supertinou avatar swve avatar teddyroncin avatar tgalopin avatar thomaslachaux avatar titotix avatar tolbon avatar zalk0 avatar

Stargazers

 avatar  avatar  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

etuutt's Issues

Les nouveaux événements ne sont plus dans les notifications

quand on est sur la page d'accueil après s'être connecté : la liste des évents ne se met pas à jour !

Éclaircissement de @Alabate,

Par contre, ce qui ne marche plus, et c'est peut-être de ça qu'il parle, c'est le flux, les notifs.
Le dernier event qui est dans mon flux est d'Atecap, il y a 3 mois. Pareil de ton coté ?
Si c'est le cas, l'ajout aux flux doit être cassé.

cf. https://etu.utt.fr/bugs/252-pas-de-mise-a-jour-des-events

Remontée des bugs depuis le site ?

Les bugs sur le site sont remontés depuis une interface sur https://etu.utt.fr/bugs, mais les administrateurs du site / développeurs ne sont pas mis au courant lorsqu'il y en a de nouveaux.

Peut-être qu'il faudrait réfléchir à une passerelle qui crée les issues correspondantes sur Github ?

[API] Authoriser une application quand utlisateur non connecté

BUG

Authoriser une application qd non connecté

Il serait très intéressant lorsque l'on veut authoriser une application externe EtuUTT via l'url
/api/oauth/authorize?response_type=code&client_id=<your_client_id>
et que l'on n'est pas connecté au site EtuUTT que le message "Vous n'êtes pas authorisé a voir cette page" s'affiche mais plutôt "Connecter vous d'abord au site pour authoriser l'application" puis que lorsque l'on se connecte sur le site étu, on soit redirigé à la fin vers la page d'authorisation de l'application qui a le client_id.

Donner accès blocks home depuis module

Actuellement, la home est générée à la main. Il faut mettre en place le pattern Strategy pour autoriser les modules extérieurs à ajouter des blocks à leur manière.

Renvoi id BDD des users et orgas

Per Grégoire Martron :

Renvoi de la clef primaire sur
/public/orgas
/public/orgas/{login}
/public/users
/public/users/{login}

Abonnement aux threads du forum

Le forum n'est pas très utilisé en partie parce que personne n'est tenu informé des réponses qui sont postées à la suite des threads auxquels on a participé.

Il faudrait au moins utiliser la zone de notifications à l'intérieur du site étudiant (celle sur la page d'accueil), ou alors leur envoyer automatiquement un message avec un lien vers le nouveau post.

La vérification de l'extension des images est case-sensitive

Message original : https://etu.utt.fr/bugs/85-upload-img-invalide-si-extension-en-maj

cf.

if ($file->isFile() && in_array($file->getExtension(), array('png', 'jpg', 'jpeg', 'gif', 'bmp'))) {

cf.

if ($file->isFile() && in_array($file->getExtension(), array('png', 'jpg', 'jpeg', 'gif', 'bmp'))) {

Message original : https://etu.utt.fr/bugs/85-upload-img-invalide-si-extension-en-maj

Bug images daymails

Mise en situation :
J'écrivais mes daymails pour la hacktoberfest, dans le plus grand des calmes, en utilisant une image différente sur chaque daymail.
J'ai fais mardi, mercredi, jeudi, puis je suis retourné sur mardi et là, surprise ! Image override par celle du jeudi :/
Du coup j'ai re-modifié l'image du mardi, pour remettre celle du mardi.
J'ai été voir jeudi et paf, image du jeudi override par celle du mardi :/

Du coup je ne peux pas faire mes daymails à l'avance, ce qui me déçoit un peu car j'étais dans une lancée de type olympique #tristitude

Badges

Le système de badges est merdique, de manière générale, mais en particulier y a un soucis avec BadgeManager::initializeUsersBadges(), $userBadge->getUser() vaut parfois null.

A checker

API - Améliorations

Amélioration de l'API:

  • données publiques de l'user courant accessibles sans scope ;
  • stocker l'autorisation utilisateur pour ne pas lui redemander à chaque fois ;

Incohérence dans la BDD, Erreur 500, et impossibilité d'accéder à une autre page par la suite

Ce projet utilise fait du soft-delete, c'est à dire que les entrées en BDD ne sont pas supprimés, mais elles ont juste un champ pour les marquer comme supprimés. L’inconvénient de cette méthode, c'est que les contraintes sur clés étrangères ne peuvent plus être vérifiés par le système de gestion de bases de données (ici, mysql). C'est donc à nous de faire les modifications en cascade en cas de suppression d'un éléments avec des relations.

Sur la version actuelle du projet, lorsque qu'on supprime une association, elle ne supprime pas ses membres. Ce qui a pour conséquence de créer une incohérence de la base de donnée. Cette incohérence se fait remarque lorsqu'un utilisateur appartenant à une association supprimé va sur son profil personnel. Il tombe sur une erreur 500.

Entity of type 'Etu\Core\UserBundle\Entity\Organization' for IDs id(3) was not found

L'erreur est plutôt clair, pas de soucis à ce niveau là. C'est ce qu'on attend comme comportement. L'issue est plus là pour parler du problème qui va suivre.

Cependant à la suite de cette erreur:

  • Coté client: Impossible pour lui de visiter une nouvelle page. Peu importe la page, il tombera sur un chargement assez long qui se terminera par une 502 ou 504. Pour visiter à nouveau le site etu, il devra supprimer son cookies de session php.
  • Coté serveur (pour nginx/php-fpm): A chaque fois que l'utilisateur tombe sur une erreur 50x suite à ce bug, le serveur reçoit la demande, commence à la traiter et s’arrête mystérieusement au milieu sans message d'erreur. Pas de différence dans les logs jusqu'à cet arrêt. Par la suite le child php-fpm alloué à cette requête est bloqué et ne sera pas arrêté par la directive max_execution_time de php.ini. Une fois que tous les children sont alloués à des requêtes de ce type, le serveur ne répondra évidement plus jusqu'à ce que php-fpm soit redémarré.

Je n'ai pas réussi à corriger ce problème. Je n'arrive pas à savoir d'où viennent ces problèmes. Néanmoins on va les contourner comme on peut:

  • Coté serveur: La directive request_terminate_timeout à mettre dans la pool permet de tuer le child qui ne répond pas. Et permet donc de ne pas immobiliser le serveur. (à régler sur une valeur plus importante que max_execution_time pour lui laisser le temps d'agir pour les autres bugs)
  • Coté client: Le seul moyen trouvé est de faire en sorte qu'il n'y ait pas d'incohérence dans la BDD.

nginx sert les fichiers en .php

Visiblement, nginx est mal configuré et n’interprète pas toujours les fichiers en .php :

$ curl -vv https://etu.utt.fr/app_dev.php
[...]
< HTTP/1.1 200 OK
< Server: nginx
< Date: Mon, 28 Aug 2017 19:39:39 GMT
< Content-Type: application/octet-stream
< Content-Length: 1281
< Connection: keep-alive
< Last-Modified: Wed, 15 Feb 2017 12:53:48 GMT
< ETag: "58a44f5c-501"
< X-Frame-Options: SAMEORIGIN
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< Cache-Control: no-transform
< X-UA-Compatible: IE=Edge
< Accept-Ranges: bytes
< Access-Control-Allow-Origin: *
<
<?php

use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;

// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#checking-symfony-application-configuration-and-setup
// for more information
//umask(0000);
[...]

Argentique

Soucis de synchronisation : DELETE FROM etu_argentique_collections':

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (etuutt.etu_argentique_photos_sets, CONSTRAINT FK_57A74CEF514956FD FOREIGN KEY (collection_id) REFERENCES etu_argentique_collections (id))

[API] Refresh_token non présent et non regénéré lors du rafraichissement d'un token d'accès

API / BUG

- Refresh token non présent lors du rafraichissement d'un token d'accès

- Refresh token non regénéré

Contrairement au chapitre sur l'utilisation du refresh token dans la documentation http://etuutt.readthedocs.org/fr/latest/api/access/grant_types/refresh_token.html

L'utiisation d'un refresh_token :

POST /api/oauth/token HTTP/1.1
Host: etu.utt.fr
Authorization: Basic XXXXXXXXXXXXXX
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&refresh_token=XXXXXXXXXXXXXXXXXXXXX

Fournit une réponse de cette forme :

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: private, must-revalidate, no-transform
Pragma: no-cache

{
    "http": {
    "status": 200,
    "message": "OK"
},
    "response": {
    "access_token": "XXXXXXXXXXXXXXXXXXX",
    "expires_at": "1429230624",
    "scopes": [
        "public"    
        ]
    }
}

Le refresh token n'est pas fourni dans la réponse et d'autre part il n'est pas regénéré.Il est donc possible de réaliser plusieurs fois la requête avec le même refresh token.

UVS manquantes

Il manque au moins les UVs suivantes sur le site :

@tgalopin : À ton avis, on doit forcément refaire un parseur de guide des UV qui fonctionne correctement ou on peut se permettre de les rajouter à la main ?

Trombi avec le personnel de l'UTT

L'import du LDAP prend aussi les enseignants et personnels de l'UTT, ainsi que leurs infos publiques tel que leurs bureaux.

Pourquoi ne pas les avoir sur le trombi, eux aussi ?

Timezone et locale

Nous avons eu un signalement de bug sur le site etu indiquant un décalage horaire de 2h entre la page "Les derniers" du module de covoit et lorsqu'on regarde une annonce en particulier. Or on est en heure d'été, donc une heure affiché en gmt, l'autre en locale. La bonne horaire entrée par l'utilisateur était celle de la page décrivant le covoit.

Sauf que en local quand j'ai testé, chez moi tout marchait. Ça dépend donc juste de la conf du seveur, et c'est pas trop normal. J'ai réglé un peu de façon moche le problème en précisant la timezone de paris sur l'affichage des derniers covoit. Sauf que du coup en local, maintenant j'ai un décallage..

Bref, il faut regarder ça plus en détail et réfléchir sur quelle timezone on travaille : paris uniquement ? Réglable par l'utilisateur sur son profil ? A préciser lorsqu'on met une date sur le module de covoit ?

Entités serialisées en BDD

Lorsqu'on enregistre une notification, le site sérialise l'objet dans la base de donnée pour pouvoir le lire au moment de l'affichage de la notification. L'avantage (ou pas) est que, même s'il y a eu des modifications après, il garde les informations du début.

Sauf que si, un jour, la structure d'une entité est amenée à changer. Symfony sera incapable de désérialiser automatiquement l'objet et nous affichera une belle erreur sur la page d'accueil des utilisateurs recevant la notification. Ce problème nous oblige à supprimer les notifications à chaque changement d'entité.

Pour moi, la solution est simple (dans le concept, pas forcément à mettre en place), il faut lier la notification avec un id d'entité plutôt.

Mais du coup, je me demande pourquoi ça n'a pas été fait comme ça au début ? Quelqu'un a une idée d'une raison spécifique ?

Edit: Une fois en prod, le nom de l'utilisateur n'est juste plus affiché, donc c'est moins grâve, mais c'est pas géniale non plus.

a commenté le bug Pas de mise à jour des évents
Edit: Bon en fait j'ai quand même tout supprimé, parce que j'avais des exceptions dans le log.

Increase Daymail title length

The title length is limited DB-side to 50 characters, which happen to be a bit short when one has to present several events on the same day. Perhaps 60 characters would suit best ?

Erreur sur l'upload de logo asso

Hello,

Depuis un compte asso, upload un logo sur "Administration" >> "Modifier votre logo" >> "Envoyer" fait tomber sur une erreur Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Par ailleurs, le logo par défaut provoque des erreurs dans la console :

GET https://etu.utt.fr/logos/default-logo.png?v10.1.4?6d51a 404 (Not Found) orga:1
GET https://etu.utt.fr/facebox/closelabel.png 404 (Not Found) orga:1
GET https://etu.utt.fr/facebox/loading.gif 404 (Not Found) loading.gif:1
GET https://etu.utt.fr/facebox/loading.gif 404 (Not Found) default-logo.png:1
GET https://etu.utt.fr/logos/default-logo.png?v10.1.4?6d51a 404 (Not Found)

ArgentiqueBundle est fourni les clefs d'API de l'UNG

Le bundle faisant tourner argentique est fourni avec les clefs d'API Flickr du compte de l'UNG : https://github.com/ungdev/site-etu/blob/e23a5d0cf1939d91708d6807ab87f61dcb8963c2/src/Etu/Module/ArgentiqueBundle/Controller/AdminController.php#L458-L462

Je suppose qu'il faudrait les mettre en tant que directives de configuration dans le dossier config/ du bundle (et renseignées correctement en production), et les demander lors de l'installation ou l'évoquer dans la documentation ?

Les anciens, les virés, toujours au même point, à vie

Quand une personne quitte le LDAP, elle garde son statut d'étudiante, (pas de keepactive?), et sur le trombi, elle reste au même dernier point de sa formation. Ainsi on a le droit à

  • Un certain Titouan GALOPIN toujours en HC1. Par contre il n'est plus en "ingénieur".
  • Ou encore sa fillote qui a suivie le même chemin, un peu plus tard, par contre, elle, toujours en "ingénieur".

Il faudrait améliorer les script de sync, pour mieux gérer les anciens. Voire leur envoyer un mot de passe.. Mais du coup, il faudrait détecter le moment où il ne sont plus à l'UTT et leurs envoyer par email à ce moment là (de mémoire le CRI leur accorde 6 mois de répit)

Bref, mieux gérer les vieux con :)

Convertir les messages en HTML vers du BBCode

Tous les messages étaient à l'origine enregistrés au format BBCode et convertis en HTML par Twig au moment de l'affichage. Suite à un soucis avec l'éditeur, depuis plusieurs mois les messages sont enregistrés au format HTML.

On se retrouve avec beaucoup de contenus illisibles (cf. https://etu.utt.fr/forum/thread/558-utt-english-club). Il faut trouver un moyen de convertir ceux-ci à nouveau vers du BBCode et make etu.utt.fr great again.

Cela concerne les descriptions d'associations, les commentaires sur les UV, les messages sur le forum.

Messages liés : https://etu.utt.fr/bugs/241-commentaires-d-uv-chaotiques, https://etu.utt.fr/bugs/247-formatage-commentaire-html-visible, https://etu.utt.fr/bugs/240-tag-html-dans-commentaires, https://etu.utt.fr/bugs/239-balises-commentaires, https://etu.utt.fr/bugs/243-description-asso-ism

Création d'une application

Dans la section développeurs, impossible de créer une nouvelle application. Une erreur sauvage apparaît lors de la soumission du formulaire de création.

Ajout des spécialités de Masters dans la recherche

je viens de caler que dans le trombi, si la recherche par branche+semestre fonctionne très bien... elle est limitée aux ingénieurs, de fait.
Ce serait génial de rajouter chaque spécialité de master dedans, je ne pense pas que ça prenne trop de temps
(non parce que retourner sur l'ENT pour trouver, là, ça me pique le fondement ! :D )

Message original : https://etu.utt.fr/bugs/229-et-les-master

Les spécialités existantes à l'UTT sont les suivantes :

  • IM
    • IMSGA
    • IMEDD
    • SMI-LES
  • STIC
    • OSS
    • SSI
  • MP
    • ONT
    • TEMMA
    • IAMC
    • MERI

Le format utilisé pour l'affichage sur le profil est SectionSemestre Spécialité (STIC4 SSI, MP2 ONT...).

Error 500 on settings page (only for one user).

One user reported an 500 on his profile page - reproductible only for his account. I'll try to debug it this week :-)

[13-Apr-2015 14:59:45] WARNING: [pool www] child 28562 said into stderr: "NOTICE: PHP message: PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Failed to start the session because headers have already been sent by "/var/www/app/bootstrap.php.cache" at line 1334.' in /var/www/app/cache/prod/classes.php:103"
[13-Apr-2015 14:59:45] WARNING: [pool www] child 28562 said into stderr: "Stack trace:"
[13-Apr-2015 14:59:45] WARNING: [pool www] child 28562 said into stderr: "#0 /var/www/app/cache/prod/classes.php(169): Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->start()"
[13-Apr-2015 14:59:45] WARNING: [pool www] child 28562 said into stderr: "#1 /var/www/app/cache/prod/classes.php(473): Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->getBag('attributes')"
[13-Apr-2015 14:59:45] WARNING: [pool www] child 28562 said into stderr: "#2 /var/www/src/Etu/Core/CoreBundle/Framework/Listener/TerminateListener.php(50): Symfony\Component\HttpFoundation\Session\Session->set('etu.last_url', '/uvs/category/e...')"
[13-Apr-2015 14:59:45] WARNING: [pool www] child 28562 said into stderr: "#3 [internal function]: Etu\Core\CoreBundle\Framework\Listener\TerminateListener->onKernelTerminate(Object(Symfony\Component\HttpKernel\Event\PostResponseEvent))"
[13-Apr-2015 14:59:45] WARNING: [pool www] child 28562 said into stderr: "#4 /var/www/app/cache/prod/classes.php(1670): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\PostResponseEvent))"
[13-Apr-2015 14:59:45] WARNING: [pool www] child 28562 said into stderr: "#5 /var/www/app/cache/prod..."

PIN BuckUTT

Aloha !
Bug et suggestion de « logique » concernant l'utilisation de BuckUTT.
Dans le cas de la création d'un compte d'un étudiant arrivant à l'UTT, celui-ci ne possède pas de PIN BuckUTT. Il doit utiliser « Pin oublié ? » afin d'en recevoir un nouveau.

Deux problèmes se posent actuellement :

  • Le rappel de PIN ne marche pas pour un compte fraîchement créé. Je n'ai pas pu creuser la cause du problème - toute tentative se solde par un « Impossible d'envoyer l'email ».
  • Ne serait-il pas plutôt logique d'envoyer un nouveau PIN automatiquement lors de la première visite sur la page de BuckUTT, tout en indiquant à l'utilisateur qu'il l'a reçu par mail ?

Login redirect to a 404 page

When logged, I get redirected to https://etu.utt.fr/events/209.png?v10.1.4

https://etu.utt.fr/img/back-body.jpg Failed to load resource: the server responded with a status of 404 (Not Found)
https://etu.utt.fr/img/lines.jpg Failed to load resource: the server responded with a status of 404 (Not Found)
https://etu.utt.fr/img/sprite-header.png Failed to load resource: the server responded with a status of 404 (Not Found)
https://etu.utt.fr/img/back-title.png Failed to load resource: the server responded with a status of 404 (Not Found)

Some assets are missing

Etudiants EPF et doctorants pris pour des associations

Le site etu considère les étudiants EPF et les doctorants (qui n'était pas étudiant avant) comme des associations, ils ne peuvent donc pas se connecter au site etu.

Il faudrait lire leurs enregistrements dans le LDAP et trouver un pattern permettant de les différencier des associations.

[API] Mauvaise compatibilité avec les clients OAUTH2

API / BUG

Mauvaise compatibilité avec les clients OAUTH2

La compatibilité avec les clients OAUTH2 laisse à désirer, ceci est principalement du à la réponse non conventionnelle :
Concernant l'Access Token Response, par exemple, la RFC 6749 (https://tools.ietf.org/html/rfc6749#section-4.3.3) spécifie une réponse de la forme suivante :

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache

 {
       "access_token":"XXXXXXXXXXXXXXXXXXXXXXXX",
       "token_type":"example",
       "expires_in":3600,
       "refresh_token":"XXXXXXXXXXXXXXXXXXXXXXX",
       "example_parameter":"example_value"
  }

Or la réponse fournit par l'API du site étu est de cette forme :

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: private, must-revalidate, no-transform
Pragma: no-cache

{
    "http": {
        "status": 200,
        "message": "OK"
    },
    "response": {
        "access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
        "expires_in": 3600,
        "scope": "public private_user_account",
        "refresh_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
}

Les clients ne sont pas capable de parser la réponse pour récupérer l'access_token
Les changements devraient être fait dans une version V2 de l'API afin de ne pas introduire de "breaking changes" pouvant empecher le fonctionnement des applications utilisant actuellement l'API.

Amélioration du wiki

Le contenu du wiki est basé sur ce qu'il y avait dans un autre dépôt. Ce qui est dans doc/ n'a pas été migré pour le moment. Ça a été fait un peu à la va-vite, donc il faudrait repasser dessus pour tout transformer en Markdown correct et corriger quelque fautes. Pourquoi pas reprendre l'ancienne idée de tutoriel et proposer une application simple d'exemple ?

Liens entre liste des crénaux d'UV et liste des étudiants d'un crénaux

Ca serait cool de pouvoir cliquer sur une case de la liste des créneaux d'une UV, pour arriver sur les étudiants inscrits. Et une fois sur la liste des étudiants inscrits, avoir un lien qui nous dirige vers la liste des créneaux.

En gros, pour prendre exemple, ils faudrait des liens entre ces deux pages :

Protection des addresses emails contre les bots

Je suis actuellement sur 3 adresse mail d'assos différentes (bde, ism, robotik) et certain des spams arrivent en triple, un pour chaque adresse. Et finalement, le site etu est un peu une bonne source adresses email à spammer.

En même temps, pour une asso, c'est utile de pouvoir être contacté par un futur potentiel partenaire, et donc d'avoir son adresse email publique. Du coup je me demandait si la solution de générer avec gd, un png avec l'adresse email dessus, serait pas suffisant. C'est pas top pour les handicapés, mais bon..

Vous en pensez quoi ? Quelqu'un sait si niveau perf, il vaut mieux faire cache pour ces images, ou alors si on peut les générer à chaque fois sans que ça change grand chose ?

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.