Basé sur le micro-framework PHP slim3, ceci est un site assez complet de type site de rencontres sur le theme rick & morty. Les interactions entre utilisateurs sont au coeur du projet!

screenshot

lien

  • site matcha. (le premier chargement est lent (>15s) pour la création de l’instance heroku) PS: vous pouvez vous inscrire avec un mail bidon.
  • code final sur github

features

  • page de login/signup/reset password
  • page de profil pour chaque utilisateur. Sur sa propre page, on peut ajouter tag/photos et modifier sa localisation. Celle-ci est illustrée via l’api google map
  • page de recherche permettant soit de browser une sélection de profils (sélectionner par date de connection, distance à vous, tag en commun, popularité), soit defaire des recherches par nom ou critères.
  • (non fonctionnel sur heroku à cause des limitations de bibliotheques) page de chat permettant de chatter avec ses amis uniquement
  • page de configuration: modification des données personnelles, mot de passe, demande des données stockées en base de donnée et suppression deprofil
  • page de logout
  • page de contact
  • (non fonctionnel sur heroku) système de websocket pour délivrer des notifications quand:
    • un autre utilisateur regarde votre profil
    • un uilisateur fait ou accepte une demande d’amitié
    • un utilisateur consulté est en ligne
    • un ami est en ligne
    • un ami a démarré une discussion
    • chat

screenshot

Objectifs pédagogique

  • Micro-framework
  • Comptes utilisateur avancés
  • Web socket
  • Géolocalisation
  • Sécurité / Validation de données

Langages:

  Back-end Front-end bdd
langage PHP HTML, CSS, JS MySQL
framework Slim3 twig, w3.css, VanillaJS  

Librairies:

categorie bibliotheque/api
websocket Ratchet avec zeroMQ (dysfonctionnel sur heroku, malheureusement)
geolocalisation geoip2
map API Google Maps
faker fzaninotto/faker

screenshot

Contraintes Techniques, composants interdits:

  • ORM ou ODM
  • validateur de données
  • gestion de comptes utilisateurs
  • gestion de votre base de données

Améliorations à faire

  • socket.io pour les websockets