-
Notifications
You must be signed in to change notification settings - Fork 2
Architecture
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
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.
Voici à quoi ressemble notre base de données:
Nous avons plusieurs tables:
-
annonces: table contenant toutes les informations concernant les annonces:
-
pets: table contenant toutes les informations concernant les animaux:
-
petsannonces: table faisant la liaison entre la table pets et la table annonces:
-
propositions: table faisant la liaison entre la table users et la table annonces:
-
users: table contenant toutes les informations concernant les utilisateurs:
Voici le schéma de notre base de données:
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
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 |
Voici les captures d'écrans des éléments utilisant beaucoup la DB
Page Mon Profil
Page Annonces
Page Propositions