Skip to content

bnvd26/neymo

Repository files navigation

Neymo - Back-end

Prod : https://neymo-api.benjaminadida.fr/

NeyMo est un gestionnaire de monnaie locale conçu pour soutenir les associations, les collectivitées et toutes les personnes qui ont à cœur la revalorisation de leurs territoires dans une démarche de développement durable et sociale.

Ce site a été réalisé à des fins pédagogiques dans le cadre du cursus Bachelor de l’école HETIC. Les contenus présentés n'ont pas fait l'objet d'une demande de droit d'utilisation. Ce site ne sera en aucun cas exploité à des fins commerciales et ne sera pas publié

Installation

Générer clefs pour JWT

Créer le dossier :

mkdir -p config/jwt

Clef privée :

openssl genpkey -out config/jwt/private.pem -aes256 -algorithm rsa -pkeyopt rsa_keygen_bits:4096

Clef publique :

openssl pkey -in config/jwt/private.pem -out config/jwt/public.pem -pubout

Modifier la variable JWT_PASSPHRASE, avec la passphrase que vous aurez défini

Le projet est disponible sous Docker 🐳

Cloner le projet :

 git clone https://github.com/benads/neymo.git

Exécuter ce script dans le projet :

sh init.sh

Pour lancer une commande Symfony dans le container :

docker container exec -ti app bash

Back-Office/API

Documentation de l'API

Client MySQL

API Doc

Collection Postman : https://www.getpostman.com/collections/4b49a8cced39c4202581

Récupérer le token utilisateur sur Postman avec une requête login

  • Identifiant de connexion Super-Administrateur

    {
    	"username": "superadmin@neymo.com",
    	"password": "123456"
    }
  • Identifiant de connexion Administrateur

    {
    	"username": "admin@neymo.com",
    	"password": "123456"
    }
  • Identifiant de connexion Commercant

    {
    	"username": "company@neymo.com",
    	"password": "123456"
    }
  • Identifiant de connexion Particulier

    {
    	"username": "particular@neymo.com",
    	"password": "123456"
    }

Authentification à l'API via ApiDoc :

Stack technique :

Général :

Tout notre back a été fait en Symfony 5.1.

Pour ce faire, nous avons utilisé différentes technos pour nos environnements (prod/dev) :

Dev :

Docker : Nous avons décidé de dockeriser tout notre back pour faciliter l'installation et harmoniser notre environnement entre développeurs. Il est composé de 5 images :

  • Le container "app" qui créer un environnement PHP, composer...
  • Le container "db", le server MySQL où est hébergé notre base de données
  • Le container "adminer", le client MySQL qui permet d'avoir une interface graphique de la base de données (Adminer 4.7)
  • Le container "web-server", le server web NGINX qui permet d'avoir un server simple à configurer
  • Le container "mailhog", qui propose deux types de service : un SMTP et une interface pour visualiser les mails

Prod :

  • NGINX : pour avoir un serveur web simple d'utilisation
  • MySQL 5.7 : pour avoir une base de données qui s'accorde bien avec Symfony grâce à son ORM, Doctrine
  • DigitalOcean : pour avoir une infrastructure cloud qui fournit une solide documentation
  • Ubuntu 18.0 : pour avoir un système d'exploitation facile d'accès et modulable

Composants utilisés

Doctrine : ORM
jwt-authentication-bundle : Authentification API avec JWT
api-doc-bundle : Gérer la doc de l'API
cors-bundle : CORS policy
Mailer : Envoi d'email
mailjet-apiv3-php : Permet l'envoi d'email
Faker : Création des faux jeux de données
php-credit-card-validator : Vérification la validité des informations d'une carte bancaire
Security : Gérer le login et les rôles

Argumentaire détaillé

Notre back-end se divise en 3 parties :

Interface Super-Adminisitrateur

La première partie de notre application est un back-office administré uniquement par nous-mêmes, Neymo, agence digitale, pour gérer toutes les gouvernances et leurs administrateurs. Nous avons listé les fonctionnalités dont nous avions besoin :

  • Lister toutes les gouvernances
  • Créer, afficher les détails et modifier une gouvernance
  • Créer, lister, modifier et supprimer les administrateurs d'une gouvernance

Interface Administrateur

Cette interface permet aux administrateurs de la gouvernance de pouvoir gérer leur propre gouvernances et leurs adhérents. Ainsi, un administrateur peut :

  • Modifier ses propres informations
  • Lister, créer et supprimer les autres administrateurs de la gouvernance
  • Gérer les différents types d'adhérents (commercant/particulier)
  • Valider ou refuser les demandes d'inscription en attente (envoi d'email de confirmation)
  • [WIP] Voir les détails de la gouvernance
  • [WIP] Accèder à un dashboard pour visualiser les statistiques de la monnaie locale

API Adhérent

Cette interface permet de spécifier les différentes fonctionnalités auxquelles ont accès les adhérents. Documentation NelmioApiDoc

MPD

About

School project - Neymo is an application that allows you to manage local currency

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors