PodoStats – Réseau social sportif !

podoStats

podoStats est un site réalisé pour mon projet de BAC STI2D SIN.

Mon projet était le suivant : Créer un podomètre, et créer un site web pour gérer et afficher les statistiques enregistrées !

Mes deux collègues de projets avaient pour but de créer le podomètre en utilisant des cartes Arduino, et ma tache était de créer le site web.

Mais j’ai choisi de créer un réseau social dans le même style que Runtastic etc, ceci afin de me créer un défi personnel et d’améliorer mes compétences (c’était mon tout premier projet PHP/MySQL)

Voici les différentes taches que j’ai eu à créer :

Tâches communes ou globales

  • Développement durable (partie sociale) (15heures) J’ai répondu à la question qui m’avait été attribuée à la répartition des tâches « En quoi un podomètre peut améliorer la santé et la sécurité de l’utilisateur ? »
  • Câblage et plan de câblage (5heures)- Revues de projet Anglais technique et oral de soutenance
  • Création du design et de l’interface utilisateur (CSS3/HTML5/JavaScript) (80heures)- Site adapté aux mobiles, tablettes et PC (utilisation des media-queries de CSS3)- Menu hamburger disponible sur tablette et smartphone (le menu du haut sur la version PC se placera dans le menu hamburger) (Javascript)- Réorganisation du code CSS en un seul fichier (à la base répartis en plusieurs fichiers, un pour le footer, un pour le header et un pour la base du site)
  • Connexion du site a la base de données et création de la base de données (PHP/MySQL) (3heures)- Création de la base de données via PhpMyAdmin- Connexion du site a la base de données en utilisant l’extension PHP nommée « PDO », extension empêchant les injections SQL via les requêtes préparées (pouvant permettre à des utilisateurs nuisibles de modifier des informations de la base de données)
  • Création d’un espace membre (PHP/MySQL) (50heures)- Espace connexion, interagissant avec la base de données, si le mot de passe ou identifiant est incorrect alors la connexion impossible- Espace inscription, l’utilisateur renseigne ses informations dans l’espace inscription et les données sont enregistrées dans la base de données- Espace profil, toutes les informations de l’utilisateur enregistrées dans la base de données s’affichent sur la page profil de l’utilisateur, les autres membres du site peuvent voir ses informations, ses « statuts » (s’il a choisi dans ses options de les afficher)- L’utilisateur peut poster des statuts depuis son profil, et les supprimer (ceux-ci seront quand même stockés dans la base de données si problème il y a)- Fonction « mot de passe oublié » permettant à l’utilisateur de recevoir un nouveau mot de passe s’il l’a perdu.- Option permettant à l’utilisateur de modifier ses informations telles que son adresse mail ou son mot de passe, ou ses informations personnelles
  • Visionnage de ses statistiques sportives depuis l’accueil ou une page dédiée (PHP/MySQL). (30heures)- Visionnage des 10 derniers parcours depuis la page d’accueil, informations telles que la date, l’heure, les kilomètres parcourus, le nombre de pas, ainsi qu’un lien vers une map «Google Map»- Visionnage de tous ses parcours depuis la page d’accueil ainsi que sur une page dédiée, possibilité de supprimer un parcours (celui-ci restera tout de même présent dans la base de données au cas où une erreur ai eu lieu, le membre pourra demander la réactivation de celui-ci dans sa base de données)- Possibilité de voir le parcours «Google Map» de tous ses parcours importés sur le site- Affichage des marqueurs correspondant aux coordonnées X/Y du GPS enregistrés dans le fichier CSV sur la carte Google Map, une map par parcours- Si le membre a choisi d’afficher ses infos aux autres membres, alors ceux-ci pourront se rendre sur la page détails du parcours ou sur la page stats pers- du membre en question, sinon ils ne pourront pas (sauf l’administrateur)- Les membres peuvent partager sur Twitter un résumé de leurs parcours directement via un bouton intégré dans la page détails du parcours.- Depuis la page « Mes Statistiques » le membre peut voir afficher ses informations totales depuis son inscription sur PodoStats telles que le total de pas effectués, le plus grand et plus petit nombre de pas effectués, ainsi que le nombre d’heures parcourus au total. Si le parcours choisi depuis l’URL n’existe pas dans la base de données, il y aura un message d’erreur.
  • Espace administrateur (15heures) Espace permettant à l’administrateur définit dans le code du site d’afficher tous les membres, de les gérer (supprimer/éditer), d’accéder à leur profil, etc.
  • Correction des failles de sécurité (3heures) Utilisation de PDO pour éviter les injections SQL grâce aux requêtes préparées, failles permettant à l’utilisateur d’afficher les données de la base de données, ou tout simplement de les modifier et de s’en servir à des fins nuisibles. Correction des failles XSS, failles permettant à l’utilisateur d’entrer du code Javascript/HTML dans les différents champs de texte du site, pouvant rediriger les utilisateurs vers des sites pièges, d’afficher du code HTML ou tout simplement récupérer leurs cookies.
  • Espace « A propos » et « Contact » (2heures)- L’espace contact permet à l’utilisateur de contacter les administrateurs du site afin de les prévenir d’un bug/de leur soumettre une suggestion ou une réclamation.
  • Fonction « recherche » permettant aux membres de rechercher un membre. (PHP/MySQL) (15heures)- Seuls les membres ayant mis leur état de « vie privée » sur non sont trouvables Les membres peuvent être trouvés par leur nom, prénom, ville ou pseudo. J’ai également utilisé de l’URL rewriting pour réécrire de manière plus propre les URL et faciliter le référencement.
    Problèmes rencontrés :
  • L’indentation du code afin de garder le code structuré et propre a été particulièrement difficile, certaines fonctions PHP ou autre compliquait énormément la tache de l’indentation, que j’ai presque laissé tomber pour certains fichiers
  • Les parcours Google Map ne voulaient pas s’afficher, car pour la requête préparée PHP servant à récupérer les informations du parcours ainsi que les informations des parcours, j’avais assigné à mon marqueur nominatif pour récupérer l’identifiant du membre la variable de session ‘id’, hors je n’avais pas mis de session_start dans le début du fichier PHP, impossible pour le script de marcher Gestion des « j’aime » pour les statuts, les statuts s’affichaient mal car il y avait une erreur dans la boucle, projet abandonné.
  • Il y a eu en tout deux designs, le premier, ayant reçu des avis negatifs (mais constructifs, ayant ainsi permis l’élaboration d’un deuxième design) sur celui-ci, a été entièrement retravaillé avec l’aide d’un graphiste qui m’a conçu une maquette et une charte graphique, je me suis donc occupé de l’intégration de cette maquette.Etant donné que le projet est hebergé sur un serveur distant et que je dispose chez moi des outils nécessaires, j’ai pu en grande partie travailler chez moi.

Vous pouvez consulter le dossier que j’ai eu à constituer en fin d’année : 2016_lorgues_sin_ravia_julien

J’ai obtenu la note de 20/20 coefficient 12 a la matière de « spécialité » et la note de 20/20 coefficient 1 a la matière de spécialité LV1 qui consistait a présenter le projet et les différentes taches effectuées en anglais.

Un lien vers le site : http://podostats.legtux.org

Captures d’écran :

http://i.imgur.com/6J1Wa4l.png

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *