Portfolio de Dasek Joiakim - Semestre 4
Semestre 2
Projet
Koloka

Koloka

Nos objectifs

Notre mandat consiste à créer une application web. L’objectif est de développer une application :

  • De mettre en relation deux parties : celui qui recherche un colocataire et celui qui cherche une colocation.
  • Les deux doivent pouvoir créer un profil personnel, poster, visualiser et rechercher une annonce. (A quoi ont accès les gens non authentifiés ?)
  • Avoir une partie administrative pour la gestion de l’application
  • Développer l’application en suivant une méthodologie de gestion de projet (définit par le client) en veillant à respecter les délais et budget prévus.
  • Tester l’application pour s’assurer qu’elle fonctionne correctement et qu’elle répond aux besoins des utilisateurs.
  • Assurer la maintenance et l’évolution de l’application pour maintenir sa pertinence et sa qualité.

Phases et délivrables

Phase 1 : Offre de collaboration

Pour réaliser l’offre de collaboration, nous nous sommes rencontrés pour une première récolte des besoins. Ensuite nous analysons les besoins dans le but de détailler les objectifs du client pour une clarté et un accord mutuel. L’objectif final de cette offre de collaboration est de réaliser un cahier des charges que le client accepte. Délivrable : Offre de collaboration

Phase 2 : Modélisation de l’application

  • Diagramme use case : permet de déterminer les technologies et outils nécessaire pour développer l’application en fonction des fonctionnalités souhaitées et des conditions techniques.
  • Diagramme d’activités : Clarifier les suites d’actions possible dans l’application web.
  • (Diagramme de séquences, à voir l’utilité)
  • Conception de la base de données Délivrable : Technologies et outils prévus pour l’ensemble de l’application + clarté sur le fonctionnement de l’application.

Phase 3 : Réalisation du prototype de l’application

Réaliser un prototype de l’application pour valider les fonctionnalités et l’interface utilisateur (UX – UI) :

  • Réaliser un squelette de l’application en utilisant FIGMA
  • Cycle de vie à suivre pour cette phase :
  1. Analyser
  2. Designer
  3. Implémenter
  4. Evaluer (par le client)

Ce cycle se termine quand le client est satisfait. (Prévoir au minimum 3 rencontres). Délivrable : Prototype de l’application

Phase 4 : Base du Site

Délivrable : Site web dynamique

Phase 5 : Intégration fonctionnel

Délivrable : Implémentation du site E-commerce + base de données

Phase 6 : Rendu final

Délivrable : Documentation du site

Technologies utilisées

  1. Docker (docker-compose)

Docker est un logiciel libre permettant de lancer des applications dans des conteneurs logiciels. Il permet de « packager » une application avec son environnement d’exécution, et de l’exécuter de façon isolée. Cela permet d’assurer que l’application fonctionnera toujours de la même façon, indépendamment de l’environnement dans lequel elle est exécutée.

  1. Strapi Headless CMS

Strapi est un CMS open source, headless, basé sur Node.js. Il permet de créer des API REST ou GraphQL en quelques minutes. Il est très facile à utiliser et à déployer. Il est également très performant et sécurisé.

Strapi dashboard

  1. Next.js

Next.js est un framework open source de développement web fullstack. Il permet de créer des applications web monopages, mais aussi des sites web statiques. Il est très performant et facile à déployer. Il est basé sur React et Node.js.

  1. MySQL

MySQL est un système de gestion de bases de données relationnelles (SGBDR). Nous l’utilisons pour stocker les données de l’application.

  1. React

React est une bibliothèque JavaScript libre développée par Facebook depuis 2013. Le but principal de cette bibliothèque est de faciliter la création d’application web monopage, via la création de composants dépendant d’un état et générant une page (ou portion) HTML à chaque changement d’état.

  1. Tailwind CSS

Tailwind CSS est un framework CSS open source. Il permet de créer des sites web rapidement et facilement. Il est basé sur une approche utility-first, c’est-à-dire qu’il fournit des classes CSS qui permettent de styliser les éléments HTML.

  1. Figma (pour le prototype)

Figma est un outil de prototypage et de design d’interface. Il permet de créer des maquettes d’interface utilisateur pour des applications web ou mobiles. Il permet également de créer des prototypes interactifs.

  1. Monday.com

Monday.com est un outil de gestion de projet. Il permet de créer des tableaux de bord pour suivre l’avancement d’un projet. Il permet également de gérer les tâches et les deadlines.

Etapes à réaliser

Voici les étapes générales à suivre pour réaliser un projet informatique pour une application de collocation :

  1. Établir un cahier des charges détaillé pour l'application, en définissant les fonctionnalités souhaitées et les objectifs du projet. Pour établir un cahier des charges détaillé pour une application, voici les tapes à suivre : • Identifier les objectifs du projet : il est important de comprendre pourquoi l'application est en train d'être créée et quels sont les objectifs qu'elle doit attendre. Cela pet inclure des choses comme améliorer la communication au sein d'une équipe, automatiser des tâches répétitives ou offrir une expérience utilisateur améliorée. • Réunir les exigences du projet : une fois les objectifs du projet identifiés, il est important de recueillir les exigences qui permettront d'atteindre ces objectifs. Les exigences peuvent être des fonctionnalités spécifiques, des contraintes de temps ou de budget, des normes de sécurité à respecter, etc. • Définir les fonctionnalités souhaitées : en se basant sur les objectifs et les exigences du projet, il est important de définir précisément les fonctionnalités que l'application devra inclure. Cela pet inclure des fonctionnalités de base comme la création d'un compte utilisateur, l'envoi de messages ou la gestion des tâches, ainsi que des fonctionnalités plus avancées comme l'analyse des données ou l'intégration ave d'autres applications. • Établir un calendrier de développement
  2. Réaliser une étude de marché pour comprendre les besoins des utilisateurs et les tendances du secteur.
  3. Déterminer les technologies et outils à utiliser pour développer l'application, en fonction des fonctionnalités souhaitées et des contraintes techniques.
  4. Réaliser un prototype de l'application pour valider les fonctionnalités et l'interface utilisateur.
  5. Développer l'application en suivant une méthodologie de gestion de projet, en veillant à respecter les délais et les budgets prévus.
  6. Tester l'application pour s'assurer qu'elle fonctionne correctement et qu'elle répond aux besoins des utilisateurs.
  7. Mettre en place une stratégie de marketing pour promouvoir l'application auprès des utilisateurs potentiels.
  8. Assurer la maintenance et l'évolution de l'application pour maintenir sa pertinence et sa qualité.

Stratégies de sauvegarde (opens in a new tab)

Après avoir choisi un mode de récupération satisfaisant vos exigences d'entreprise pour une base de données précise, vous devez planifier et implémenter une stratégie de sauvegarde correspondante. Le choix de la meilleure stratégie de sauvegarde possible dépend d'un éventail de facteurs, notamment des facteurs primordiaux suivants :

Combien d'heures par jour les applications ont-elles besoin d'accéder à la base de données ?

S'il existe une période creuse évidente, nous vous recommandons de planifier les sauvegardes complètes de la base de données pendant cette période.

Quelle est la fréquence de modification et de mise à jour possible ?

Si les modifications sont fréquentes, tenez compte des éléments suivants :

Dans le cadre du mode de récupération simple, planifiez, si possible, des sauvegardes différentielles entre les sauvegardes complètes de la base de données. Une sauvegarde différentielle enregistre uniquement les modifications effectuées depuis la toute dernière sauvegarde complète de la base de données.

Si vous travaillez en mode de récupération complète, prévoyez des sauvegardes fréquentes du journal. La planification de sauvegardes différentielles entre des sauvegardes complètes peut réduire le temps de restauration en diminuant le nombre de sauvegardes de fichier journal à restaurer après la restauration des données.

Ces modifications risquent-elles de porter sur une petite ou sur une grande partie de la base de données ?

Dans le cas d'une base de données volumineuse dont les modifications sont concentrées dans une partie des fichiers ou des groupes de fichiers, des sauvegardes partielles et/ou des sauvegardes de fichiers peuvent s'avérer utiles. Pour plus d’informations, consultez Sauvegardes partielles (SQL Server) et Sauvegardes de fichiers complètes (SQL Server).

Quelle est la quantité d'espace disque nécessaire pour une sauvegarde complète de base de données ?

Pendant combien de temps votre entreprise doit-elle conserver les sauvegardes ?

Vérifiez que vous disposez d’une planification de sauvegarde appropriée établie en fonction des besoins de l’application et des exigences de l’entreprise. À mesure que les sauvegardes vieillissent, le risque de perte de données est plus élevé, sauf si vous avez la possibilité de régénérer toutes les données jusqu’au point de défaillance. Avant de choisir de supprimer les anciennes sauvegardes en raison des limitations de ressources de stockage, voyez si la récupération est nécessaire aussi loin dans le passé