Skip to content

Latest commit

 

History

History
195 lines (123 loc) · 8.19 KB

README.md

File metadata and controls

195 lines (123 loc) · 8.19 KB

Image Suggestion Mèl

mel-Suggestion

mel-Suggestion est une application web simple qui permet aux utilisateurs de proposer de nouvelles fonctionnalités ou améliorations. Les utilisateurs peuvent également voter pour les suggestions existantes afin de les prioriser.

Fonctionnalités

  • Proposer des Suggestions : Les utilisateurs peuvent soumettre leurs idées de nouvelles fonctionnalités ou améliorations.
  • Voter pour des Suggestions : Les utilisateurs peuvent voter pour les suggestions existantes pour indiquer leur intérêt ou leur priorité.
  • Consulter les Suggestions : Tous les utilisateurs peuvent consulter la liste des suggestions ainsi que leur nombre de votes.
  • Trier les Suggestions : Les suggestions peuvent être triées selon divers critères comme les plus votées, les plus récentes, celles qui ont été retenues, ou celles qui ont été refusées.
  • Rechercher des Suggestions : Les utilisateurs peuvent rechercher si des suggestions similaires aux leurs, existent déjà, à l'aide de mots clés.
  • Connexion OIDC : Les utilisateurs peuvent s'identifier à l'aide d'opérateur OpenID Connect.
  • Choix des connexions OIDC : Possibilité de configurer les Opérateurs OpenID Connect disponibles pour les utilisateurs.
  • Anonymisation des suggestions : Il est possible d'activer ou de désactiver l'anonymisation des suggestions pour les utilisateurs.

Technologies Utilisées

  • Frontend : HTML, CSS, JavaScript (Vue.js)
  • Backend : PHP, Laravel
  • Base de Données : PostgreSQL
  • Authentification : Authentification en Session. En cas d'échec possibilité de se connecter via OpenID Connect (Google, Microsoft)

Pour Commencer

  1. Télécharger la release : Sans proxy : wget https://github.com/messagerie-melanie2/mel-suggestion/releases/download/[TAG]/suggestion.tar.gz

    Avec proxy : wget -e use_proxy=yes http_proxy=[PROXY] -e https_proxy=[PROXY] https://github.com/messagerie-melanie2/mel-suggestion/releases/download/[TAG]/suggestion.tar.gz

  2. Extraire le dossier tar tar -xzvf suggestion.tar.gz

  3. Passage des droits de user à apache (www-data) : sudo chown -R www-data:www-data (dossier)

  4. Générer une clé d'application avec php artisan key:generate

  5. Configurer Apache pour /public :

Alias "/suggestion" "[chemin]/mel-suggestion-back/public"
<Directory "[chemin]/mel-suggestion-release/mel-suggestion-back/public">
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	Require all granted
</Directory>
  1. Modifier le fichier .env dans mel-suggestion-back (clé secrète, connexion à la base, anonymisation des données, instance, etc...) puis valider avec php artisan config:clear

Si problème d'écriture dans laravel.log : sudo chmod -R 775 storage sudo chmod -R 775 bootstrap/cache

Utilisation

  1. Accéder à la rubrique "Aide", puis cliquer sur "Proposer une amélioration".

Proposer une amélioration

  1. Parcourez les suggestions existantes sur la page d'accueil.

  2. Avant de soumettre votre suggestion, veuillez vérifier préalablement si une proposition similaire n'existe pas déjà en utilisant le champ 'Rechercher ou créer une suggestion'. Pour cela entrer le mot-clé de votre suggestion pour procéder à cette vérification.

Recherche de suggestion

  1. Soumettez votre propre suggestion.

Formulaire de suggestion

  1. Votez pour les suggestions existantes en cliquant sur les boutons de vote.

  2. Triez les suggestions selon vos préférences.

Activation des fonctionnalités d'Anonymisation et de connexion OpenID Connect

🔑 OpenID Connect

mel-suggestion-back

📃 Fichier external-connector.php

Configuration des différents opérateurs OpenID Connect proposés qui renvoie vers les informations présentes dans le .env

Critères Nécessaires :

Critères généraux :

  • external_connector
  • external_proxy

Critères par Opérateurs :

  • client_url
  • client_id
  • client_secret
  • client_fields

📃 Fichier .env

Configuration des différentes données opérateurs.

Critères Nécessaires :

  • EXTERNAL_PROXY=
  • OPERATEUR_URL=
  • OPERATEUR_ID=
  • OPERATEUR_SECRET=
  • OPERATEUR_FIELDS=
  • APPLICATION_URL=

Note

A la place de OPERATEUR renseigner le nom de l'opérateur OpenID Connect (exemple : GOOGLE_URL=, GOOGLE_ID=, ...)

📃 Fichier LoginController.php

Permet de configurer les fonctions qui renvoient vers la vue souhaitée et qui permettent de renvoyer l'utilisateur sur l'opérateur OpenID Connect qu'il a sélectionné pour s'authentifier.

📃 Fichier connection.blade.php

Correspond à la vue utilisateur qui lui permet de sélectionner l'opérateur OpenID Connect de son choix.

📃 Fichier web.php

Configuration de la route qui renvoie vers la vue de sélection des différents opérateurs, aux utilisateurs.

Route::get('/', [LoginController::class, 'index'])->name('connection')

⚙️ Configuration GoogleCloud

https://console.cloud.google.com/apis/credentials/oauthclient/373526053027-1c5c94afpibf81hb6rdsqm6lbrcbm68k.apps.googleusercontent.com?authuser=1&project=suggestion-362609

Dans Identifiants on retrouve les informations qui permettent de configurer le .env :

  • ID client
  • Secret client

mais également l'URI globale de l'application mel-suggestion et les URI de redirection autorisée.

GOOGLE_URL=https://accounts.google.com/

⚙️ Configuration Microsoft entra

https://entra.microsoft.com/?culture=fr-fr&country=fr#home

Dans Applications > Inscription des applications.

Puis dans Applications détenues > Mel Suggestion

on retrouve les informations à renseigner dans le fichier .env :

Warning

Pour le champ MICROSOFT_SECRET= il faut renseigner la valeur et non le ID de secret disponible. Cette valeur est lisible unique lorsqu'on créé un ID secret. Si l'on oublie de le configurer lors de la création du ID secret, il est nécessaire de créer un nouvel ID secret, et donc de modifier en conséquence le fichier .env

👀 Anonymisation

L'activation ou la désactivation de l'anonymisation s'effectue depuis le fichier .env :

✔️ Pour anonymiser les suggestions, modifier la variable d'environnement SUGGESTION_ANONYMIZE comme ci-dessous :

Activation anonymisation

Visuel dans l'application :

Visuel suggestion anonyme

❌ Pour désactiver l'anonymisation des suggestions, modifier la variable d'environnement SUGGESTION_ANONYMIZE comme ci-dessous :

Désactivation anonymisation

Visuel dans l'application :

Visuel suggestion non anonymisée

A venir

  • Mise en place de l'option de connexion OpenID Connect via Agent Connect.

Démo

A envisager si besoin Vous pouvez essayer une démo en direct de l'application ici.

Licence

A compléter avec les bonnes informations Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.