Skip to content

Architecture

Lopidurs edited this page Dec 18, 2022 · 21 revisions

Architecture

Expliquer comment votre projet est construit .

Structure de fichiers

ProjetIntegration
├─ README.md
│
├─ backend
│  ├─ config
│  │   └─ config.json
│  ├─ middleware
│  │   └─ ...
│  ├─ models
│  │   └─ ...
│  ├─ routes
│  │   └─ ...
│  ├─ index.js
│  └─ package.json
│
├─ Web App Frontend
│  ├─ public
│  │   └─ index.html
│  ├─ src
│  │   ├─ Assets
│  │   │  └─ ...
│  │   ├─ Components
│  │   │  └─ ...
│  │   ├─ Pages
│  │   │  └─ ...
│  │   └─ index.js
│  │
│  └─ package.json
│
└─ Mobile App Frontend
   ├─ android
   │   ├─ app
   │   │  └─ ...
   │   ├─ gradle
   │   │  └─ ...
   │   └─ ...
   ├─ ios
   │   ├─ test
   │   │  └─ ...
   │   ├─ test.xcodeproj
   │   │  └─ ...
   │   └─ ...
   ├─ index.js
   ├─ App.js
   └─ package.json

Expliquer comment votre application est structurée

Tout le frontend de l'application est contenu dans la partie Web App Frontend. Dans le dossier src, on peut trouver les dossiers suivants :

  • Assets, contenant toutes les images que nous utilisons pour l'application
  • Components, pour tous les composants que nous réutilisons dans les pages
  • Pages, contenant toutes les pages de l'application Web et finalement, un fichier
  • index.js nécessaire au lancement de l'application.

Ensuite, nous avons la partie backend contenant les dossiers :

  • config, contenant la configuration pour les connexions
  • middleware permettant de rajouter de la sécurité dans le système de connexion
  • models, contenant tous les modèles des données qu'on va récupérer
  • routes, contenant toutes les routes pour accéder au backend.
  • index.js permettant de lancer le backend
  • package.json contenant toutes les librairies externes qu'on utilise.

Il y a également la partie concernant l'application mobile dans le dossier Mobile App Frontend qui n'est, pour l'instant, pas encore implémentée.

Expliquer comment votre DB est conçue

Voici à quoi ressemble notre base de données:

image

Nous avons plusieurs tables:

  • annonces: table contenant toutes les informations concernant les annonces:

    image

  • pets: table contenant toutes les informations concernant les animaux:

    image

  • petsannonces: table faisant la liaison entre la table pets et la table annonces:

    image

  • propositions: table faisant la liaison entre la table users et la table annonces:

    image

  • users: table contenant toutes les informations concernant les utilisateurs:

    image

Voici le schéma de notre base de données:

Qtpets

Présenter votre API (s'il y en a), avec lien vers la documentation

On a utilisé Express pour générer notre structure de fichiers de notre application backend et on utilise Sequelize comme ORM pour simplifier la communication avec la base de données

Models Relation(s) Commentaire
Annonces HasMany(Propositions) - belongsToMany(Pets) Une annonce sur le site web
Pets belongsTo(Users) - belongsToMany(Annonces) L'animal d'un utilisateur
Users HasMany(Propositions) - hasMany(Pets) Un utilisateur
Propositions belongsTo(Users) - belongsTo(Annonces) Une propositions sur le site web

Lien vers la documentation de l'API

Quels sont vos configurations ?

Configuration du Backend : config.json

Secret Commentaire
TEST_DB_USERNAME Le nom d'utilisateur utilisé pour la connexion avec la DB
TEST_DB_DATABASE Le nom de la base de donnée à laquelle on se connecte
TEST_DB_HOST L'hôte à laquelle on se connecte
TEST_DB_PASSWORD Le mot de passe de la DB

Captures d'écrans

Voici les captures d'écrans des éléments utilisant beaucoup la DB
Page Mon Profil
image
Page Annonces
image
Page Propositions
image