etudiants:2016:tdubrez:stage_pragmaticconseil

RAPPORT DE STAGE PRAGMATIC CONSEIL (2EME ANNEE)

Présentation

Pragmatic Conseil est une entreprise de développement qui propose :

  • Conseils informatiques
  • Offres en logiciels
  • Installation d'hébergement
  • Création de site web
  • Création d'application mobiles multiplateformes
  • Maintenance
  • Formation

Contact

  • Téléphone : 02 31 84 03 53
  • Adresse mail : contact@pragmatic-conseil.fr

Localisation

Procédure d'implémentation API Restful pour connexion distante restreinte selon rôle.

rest_auth.pdf

Rapport de fin de stage, emplacement des controlleurs/vues/css et choses à verifier.

novelstra.pdf

 

SEMAINE N°1

<fc brown>Jour 1</fc> :

* Découverte du projet
* Découverte et installation de l'environnement de développement PHPStorm.
* Découverte du langage YAML & création / validation de 12 fichiers correspondant à une base de donnée précise.

<fc brown>Jour 2</fc> :

* Début de l'apprentissage des bases de Symfony sur OC.

<fc brown>Jour 3</fc> :

* Poursuite de l'apprentissage de Symfony sur OC et mise en place d'un projet Git pour son suivi.

<fc brown>Jour 4</fc> :

* Poursuite de l'apprentissage de Symfony et envoi du premier TP OC.
* Démarrage du projet sur serveur.
* Découverte du logiciel MobaXterm Personal Edition permettant SSH et FTP simultané.


TERMINÉ
✔ Installation de Symfony & importation des fichiers YAML pour créer la BDD du projet.
✔ Installation de "Sonata Project" à l'aide d'une procédure pour disposer d'un back-end sur le serveur.

 

SEMAINE N°2

<fc brown>Jour 1</fc> :

* Poursuite de l'apprentissage de Symfony à l'aide du cours d'OC.
* Création de la plupart des services pour le back-end Sonata afin d'afficher / ajouter / modifier les entités de la BDD.

TERMINÉ
✔ Installation une deuxième fois de Symphony 3.* & le bundle Sonata Project sur un autre projet.

<fc brown>Jour 2</fc> :

* Poursuite de l'apprentissage de Symfony.

TERMINÉ
✔ Création de tous les services back-end OK, reste bugs mineurs à fix.

<fc brown>Jour 3</fc> :

* Fix d'un problème d'auto-incrémentation dans la BDD qui empêchait certains ajouts. Désormais les 3/4 des formulaires back-end sont fonctionnels, les autres rencontre des conflits de type.

TERMINÉ
✔ Traduction des formulaires back-end.
✔ Ajout de champ de recherche / tri pour chaque formulaires.

<fc brown>Jour 4</fc> :

* Recherche de la manière dont les styles peuvent être modifiés pour appliquer la charte graphique souhaitée.
* Ajout d'un bundle utilisateur et début de l'implémentation d'une interface de login pour accéder à l'administration.

TERMINÉ
✔ Ajout d'un champ d'envoi de fichier dans un formulaire back-end (besoin d'améliorations).
✔ Création de fichier de traduction pour le back-end.

<fc brown>Jour 5</fc> :

* Début de la feuille de style pour les pages d'inscription, profil etc...

TERMINÉ
✔ Fix mineur effectué du côté de entités, suite à mes précédents tests j'ai régénéré les tables comme elle devaient être.
✔ Implémentation de l'envoi de fichier fonctionnel (Ajout / Modification / Suppression).
✔ La feuille de style que j'avais modifié s'est faite écraser lors d'une mise à jour, j'ai donc procédé à une déclaration de surcharge avec ma propre feuille de style dans le config.yml.
✔ Création de la version minifié de cette même feuille de style.
✔ Implémentation des utilisateurs avec le bundle FOSUser (fusionné avec la table actuelle), création d'un admin et intégration graphique au back-end.

 

SEMAINE N°3

<fc brown>Jour 1</fc> :

TERMINÉ
✔ Fix des codes couleur selon la charte graphique et fix d'un bug graphique sur un header "fixed" au niveau du background-color.
✔ Amélioration du code permettant de changer de rôle un utilisateur dans le back-end, il fallait écrire manuellement le rôle avant (exemple : ROLE_ADMIN) tandis que désormais une liste déroulante avec tous les rôles est proposée.
✔ Création des pages connexion / inscription / confirmation selon une charte graphique spécifique.
✔ Création d'une feuille de style CSS pour ces mêmes pages et création de la version minifiée.
✔ Mise en place d'une redirection après connexion.

<fc brown>Jour 2</fc> :

* Encryptage du mot de passe lors de la création d'un nouvel user via la back-end OK mais les modifications ne sont pas prises en compte.
* Réfléchir à une méthode permettant de créer un questionnaire sans avoir à ajouter manuellement toutes les clés étrangères en utilisant une form unique.

TERMINÉ
✔ MàJ des templates en conséquence et FIX mineurs CSS sur l'accueil / profil.
✔ Nouvelle amélioration de la lisibilité lors de la modification des rôles (checkbox multiples avec labels lisibles).
✔ Ajout de liens sur la page profil pour changer son mdp & ses infos.
✔ Désormais si l'utilisateur est déjà connecté sur et accède à la page login, alors les liens du profil s'affichent désormais.
✔ Redirection sur la page d'accueil lors de la connexion plutôt que sur le back end.
✔ Ajout condition sur le grade de l'utilisateur connecté pour l'afficher le grade sur le back-end ou créer de futures conditions.
✔ Suppression de l'espace gestion des droits sur le back-end désormais géré par le Bundle FOSUser dans l'espace utilisateurs.
✔ Re-modification de la BDD, suppression de la table des droits (gérés dans users) + truncate / reset ID de toutes les autres tables pour commencer l'entrée de vraies données.
✔ Dans les formulaires contenant des clés étrangères les labels sont maintenant affichés au lieu de ID.

<fc brown>Jour 3</fc> :

* Recherche d'une solution pour le bug #1 => 'Integer given, expected Integer'.
* Début de test sur le contrôleur par défaut pour afficher une interface de quiz.

TERMINÉ
✔ Création de sous-catégories dans le bundle sonata pour mieux organiser les différents modules du back-end.
✔ Modification du layout des block dans l'accueil.
✔ Ajout de données réélles dans les différents onglets.
✔ Fix des liens & emplacement CSS / JS pour utilisation de la fonction asset.

<fc brown>Jour 4</fc> :

* Continuation de l'ajout de données sur le back-end.

TERMINÉ
✔ Création de mon propre block et de son contrôleur pour afficher des stats / du texte sur l'accueil du back-end de façon organisée.
✔ Enlever l'inscription, qui n'était en fait pas à faire pour le client.
✔ Modification de la BDD / YAML / Entités pour ajouter des champs + passer restriction de 50 à 255 caractères sur certains varchar.
✔ Fix CSS sur le widget login du back-end, changement d'emplacement et suppression des attributs bootstraps non nécessaires et posant problème dû à un héritage.
✔ Fix mineur de responsivité (menu hamburger qui disparaissait sous 800px).
✔ Mise à jour des traductions françaises.

<fc brown>Jour 5</fc> :

* Création d'une page personnalisée utilisant un autre contrôleur et écrasant la vue afin de pouvoir créer les formulaires, faire des calculs selon les réponses données par les employés etc... OK mais à revoir plus tardDossier créé avec succès sur le back-end, reste à configurer le reste.

TERMINÉ
✔ Création d'une copie du projet pour séparer le côté prod. et dev. complètement.
✔ Fix d'un problème en prod, il y avait une erreur 500 dû aux droits affectés.
✔ Fix d'un problème d'assets en prod, les mauvaises url étaient utilisés c'est chose réglé à l'aide de la fonction asset.
✔ Fix d'un problème similaire CSS lié à l'url saisie, si elle ne contenais pas de "/" alors le CSS était parfois pas chargé.
✔ Fix du problème "integer given, integer expected", en supprimant le cache de dév. je me suis rendu compte qu'il fallait supprimer les "type hint" sur les variables de type scalar (integer/string...).
✔ Mise à jour d'un formulaire suite aux changements de la BDD.
✔ Nouvelle MàJ des traductions.

 

SEMAINE N°4

<fc brown>Jour 1</fc> :

* Création en cours de contrôleurs API, schéma entités & début des tests.

TERMINÉ
✔ Mise en place d'un nouveau bundle pour préparer l'arrivée de l'API.
✔ Légères modifications du formulaire personnalisé (bon types d'input utilisés).

<fc brown>Jour 2</fc> :

* Installation du bundle NelmioApiDoc afin de commenter l'API que j'ai créée.

TERMINÉ
✔ Création de l'API (Schema + Controllers) terminée, tous les GET marchent, reste à tester les ajouts (fonction déjà présentes mais en attente des ressources externes pour tester).
✔ Réparation de l'arborescence du projet, mises à jour à l'aide de composer et modification des URL des assets afin qu'ils ne soient plus écrasés par une mise à jour du composer.
✔ Fix mineurs du code PHP du back-end & renommage d'un objet "assets" vers "asset" dans tout le projet.

<fc brown>Jour 3</fc> :

TERMINÉ
✔ Documentation de tous les contrôleurs API terminée (GET / POST / PUT | PATCH).
✔ Création d'un versionning pour l'API, update des namespaces
✔ Résolution de bugs mineurs de configuration.

<fc brown>Jour 4</fc> :

TERMINÉ
✔ Création d'un login sur l'API à l'aide de token et du protocole SSH en plus de refuser l'accès à ceux qui ne sont pas administrateurs (vérifié grâce au token généré lors de la connexion).
✔ Préparation procédure pour l'ajout de connexion API à l'aide de token.
✔ Résolution d'un problème du côté API sur un POST, désormais tout est fonctionnel.

<fc brown>Jour 5</fc> :

* Ajout de champ de notes et pourcentages pour préparer un algorithme de calcul par la suite.

TERMINÉ
✔ Ajout d'un champ dans la BDD, création des getteurs / setteurs et intégration dans le back-end (format date) avec les bons filtres sonata.
✔ Fix des assets en prod
✔ Modification des valeur des champ lors d'un ajout dans la back-end pour les clé étrangère, certains utilisais encore des id plutôt que des labels.
✔ Légère modification de la procédure et envoi des version PDF / DOCX au maître de stage.

 

SEMAINE N°5

<fc brown>Jour 1</fc> :

* Poursuite de l'algorithme.
* Amélioration à apporter : ajouter une liste de catégories de réponses AVANT de lister les réponses pour qu'il y en est moins (Listener probablement).

TERMINÉ
✔ Mise à jour de la version pré-prod pour démonstration.
✔ Fix mineurs CSS

<fc brown>Jour 2</fc> :

* Début d'une partie du projet en binôme avec Aboudou, je m'occuperais plus de la partie technique et lui de la partie création de layout de pages pour créer une interface de saisie ergonomique & dynamique (BDD).
* À proposer : Mettre une valeur par défaut sur les pages d'affichage si null.

TERMINÉ
Plusieurs mises à jours mineurs on étés effectuées suite à la présentation d'une version post-production au client :
✔ Agrandir le logo sur les pages back-end (x2)
✔ Ajouter une relation ManyToOne fichier YAML des pondération et création des fonctions nécessaire dans l'entité de façon à ce que l'ont sache qui a proposé une note (client ou consultant).
✔ Supprimer le choix par défaut des listes déroulantes, ajout d'un placeholder à la place car lors de multiple saisies le client pouvait oublier de changer le choix.
✔ Cocher la case "Activé" par défaut lors de la création d'un utilisateur via le back-end.
✔ Suppression des colonnes "identifiant" prenant de la place inutilement puisque non pertinent.
✔ Ajout pour chaque page du back-end des boutons "Afficher" & "Éditer". Avant ça, il fallait cliquer sur l'identifiant pour modifier et il n'y avait pas de page récapitulative.
✔ Activation de la fonction de recherche.
✔ Mise à jour des traductions.

<fc brown>Jour 3</fc> :

* Continuation du développement de l'algorithme et des pages de saisie de dossier (répondre aux questions correspondant à des axes etc...).

TERMINÉ
✔ Sécurisation via firewall des pages créée pour l'algorithme & la saisie de dossiers.
✔ Mise à jour de tous les commentaires du projet.

<fc brown>Jour 4</fc> :

* Continuation du développement de l'algorithme et des pages de saisie de dossier (répondre aux questions correspondant à des axes etc...).
* Visite de M. Heron.

TERMINÉ
✔ Ajout de bouton retour sur les pages de connexion, profil etc.
✔ Fusion d'un controller servant à développer les fonctions des pages permettant la saisie de dossier avec le controller admin. Mise à jour des routes en conséquence avec des noms plus adéquats.

<fc brown>Jour 5</fc> :

* Continuation du développement des pages de saisie de dossier (4 pages / 5).

TERMINÉ
✔ Changement des icônes utilisées pour les catégories du back-end.
✔ Mises à jour de règles du pare-feu .
✔ Modification de la structure d'une des table de la base de données.

 

SEMAINE N°6

<fc brown>Jour 1</fc> :

* Dernier sujet : Algorithme bien avancé, mais des modifications dans la base devront être effectuées pour la phase finale.

TERMINÉ
✔ Toutes les fonctions / vues de la complétion d'un dossier (questionnaire) sont opérationnelles.

<fc brown>Jour 2</fc> :

* Continuation de l'algorithme, les modifications requises dans la BDD ont étés effectuées.
* Début de la création d'une page récapitulant pour un rapport précis toutes les informations liées (client lié, utilisateur, notes...).

TERMINÉ
✔ Mise à jour d'une traduction.
✔ Modification d'une table de la base, mise à jour des fichiers YAML et back-end admin en conséquence.

<fc brown>Jour 3</fc> :

* Mise à jour de l'algorithme, il ne reste qu'à vérifier si le dernier calcul est bon.

TERMINÉ
✔ Premier jet des pages d'informations d'un rapport terminé.

<fc brown>Jour 4</fc> :

TERMINÉ
✔ Une table devait être rajoutée : création en conséquence du fichier YML, génération entités / repository, création controller admin back-end et ajout dans l'API.
✔ Installation du paquet php-intl afin de pouvoir installer par la suite le bundle d'internationalisation "SonataIntlBundle"permettant l'affichage des dates au format local.
✔ Ajout de vérification de présence de plusieurs variables dans les vues twig afin d'éviter des erreurs & d'afficher en message en cas d'absence.
✔ Résolution d'une erreur 500 en production lors de l'accès beta à l'algorithme -> produite à cause de dumps.
✔ Modification d'une règle d'accès dans le firewall.

<fc brown>Jour 5</fc> :

TERMINÉ
✔ Affichage de la note globale par famille d'actifs sur la page récapitulative des dossiers.
✔ Création de toutes les fonctions /all sur l'API et fix de quelques problèmes de compatibilité (PHP 7 -> 5.6).
✔ Création d'une nouvelle documentation : Informations sur le projet, les emplacements important, les fonctions des fonctions, les choses à vérifier / à faire...

     



Semaine 2, Jour 2




Semaine 2, Jour 3




Semaine 3, Jour 5




Semaine 6, Jour 4

"Design très discret, approuvé pour faciliter la compréhension du client lorsqu'une fonction ne fonctionne pas."




Repository GitHub | Apprentissage Symfony

aboudou RACHIDI, 2017/01/24 21:07, 2017/01/26 15:23

ça bosse bien hein ? “Maître symfony” ^^

DjezusKryst, 2017/01/25 09:55, 2017/01/31 10:18

Wesh gros, ouais j'ai déjà fini depuis hier alors que j'avais une semaine, c'est bien trop facile !

aboudou RACHIDI, 2017/01/25 14:04

bien sûr !

DjezusKryst, 2017/01/25 16:10

Et ouais, c'est étonnant hein ? C'est sûr qu'à côté vu les retards que tu cumules ça avance pas des masses !

aboudou RACHIDI, 2017/01/25 16:15

aucun retard bro ça avance à grand pas, l'application est top, reste plus qu'à faire des pings !

DjezusKryst, 2017/01/25 16:18

Mais qu'en est-il de l'API qui devra permettre de faire le lien entre l'interface web - qui en passant est déjà faite de base - avec l'application web que tu as créé ? Je te cite “c'est impossible, j'le fait pas c'est mort…”

aboudou RACHIDI, 2017/01/25 16:23

L'API n'est pas demandé sinon il serait mentionné dans la doc d'utilisation de l'app ! D'ailleurs l'application web est prêt Monsieur !

DjezusKryst, 2017/01/25 16:25

Ce que demande le maître de stage n'est pas écrit dans la doc hein !

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • etudiants/2016/tdubrez/stage_pragmaticconseil.txt
  • Dernière modification : il y a 5 ans
  • de 127.0.0.1