Introduction
Klemn - Réseau social pour les personnes en informatique
Présentation
Cette application web est un réseau social pour développeurs qui a été développée dans le cadre du cours PROJET DE DÉVELOPPEMENT DE LOGICIEL (420-5GD-BB).
Inspiré entre autre par GitHub, Reddit, Twitter (maintenant 𝕏), LinkedIn, StackOverflow ainsi que de Mastodon.
Scripts Disponibles
Dans ce répertoire de projet, vous pouvez exécuter ces commandes:
Pour installer toutes les dépendances du projet:
npm installPour démarrer le serveur d'API:
node ./server/serveur.jsPour démarrer l'application React en mode développement:
npm startIl est important de noter que vous devrez aussi créer une base de données MySQL avec l'outil DrizzleKit qui va se charger de créer les tables ainsi que les relations SQL:
npx drizzle-kit push:mysqlIl est important de noter qu'une View MySQL est requise pour que l'API et la base de données fonctionne correctement.
Pour lancer le projet dans un environnement de développement, vous devrez ajouter les options de configuration. Une fois cela fait, vous pourrez lancer 2 terminaux. Dans le premier, lancez le serveur d'API
npx nodemon server/server.jsPuis, ouvrez le serveur de développement React
npm startConfiguration du projet
Pour exécuter ce projet, vous aurez besoin d'un fichier .env localisé à la racine du projet qui contiendra les informations de votre base de données MySQL.
Configuration de la connexion à la base de données MySQL
MYSQL_HOSTNAME=localhost
MYSQL_PORT=3306
MYSQL_USERNAME=mysql-username
MYSQL_PASSWORD=mysql-password
MYSQL_DATABASE=mysql-databaseConfiguration du serveur d'API
SERVER_HOSTNAME=localhost
SERVER_PORT=1111URL de l'API que le client front-end va utiliser pour faire les requêtes.
REACT_APP_API_URL="http://localhost:1111"Configuration de Passwordless.dev
Nous utilisons Passwordless.dev pour l'authentification sans mot de passes (via les clés d'accès/Passkeys). Vous devrez créer votre projet sur Passwordless.dev ou héberger votre instance. Une fois que cela sera fait, vous devrez ajouter vos clés d'API dans le fichier .env.
Vous devez remplacer les valeurs ..._PUBLIC_KEY et ..._PRIVATE_KEY par vos valeurs générées pour votre projet passwordless.dev
PASSWORDLESS_API_URL="https://v4.passwordless.dev"
REACT_APP_PASSWORDLESS_PUBLIC_KEY=""
PASSWORDLESS_PRIVATE_KEY=""Configuration de Firebase Admin
Nous utilisons Firebase Admin pour gérer les permissions des utilisateurs sur notre back-end. Firebase admin nous permet aussi de décoder les tokens des utilisateurs afin de savoir s'ils sont vraiment qui ils prétendent être.
Depuis votre console Firebase, vous devrez générer une clé de service. Pour faire cela, vous pouvez vous aider de ce guide: https://clemfournier.medium.com/how-to-get-my-firebase-service-account-key-file-f0ec97a21620
Ensuite, vous devrez placer l'emplacement du fichier de clé de service google dans le fichier .env.
GOOGLE_APPLICATION_CREDENTIALS="/home/user/klemn/firebaseServiceAccountKey.json"Résultat
Après avoir fait toutes les configurations, votre fichier .env devrait ressembler à cela
SERVER_PORT=1111
SERVER_HOSTNAME=localhost
MYSQL_PORT=3306
MYSQL_HOSTNAME=localhost
MYSQL_USERNAME=klemn
MYSQL_PASSWORD=password123
MYSQL_DATABASE=klemn
REACT_APP_API_URL="http://localhost:1111"
PASSWORDLESS_API_URL="https://v4.passwordless.dev"
REACT_APP_PASSWORDLESS_PUBLIC_KEY="REMPLACE MOI"
PASSWORDLESS_PRIVATE_KEY="REMPLACE MOI"
GOOGLE_APPLICATION_CREDENTIALS="/home/user/klemn/firebaseServiceAccountKey.json"Last updated