EN
FR

Cloudy Pocket

mai 2024
React
Laravel
Git & Github
Figma
MySQL
Trello
SASS/SCSS
JavaScript
S.E.O.
Schema.org
Accessibilité
Optimisation des performances
Lighthouse
Bcrypt
JSX
RWD

Une application de gestion de budget intuitive et riche en fonctionnalités pour une gestion financière simplifiée.

Couverture du projet
Visiter le projet Partager sur LinkedIn

Cloudy Pocket : Une application de gestion de budget intuitive et riche en fonctionnalités pour une gestion financière simplifiée.

Ce projet est toujours maintenu et en cours de développement.

Cloudy Pocket est un projet personnel mais j'ai profité de ma formation de concepteur développeur d'applications pour en faire mon projet de fin de formation.

Il a été développé selon une architecture 3-tiers avec un client en React, une API en Laravel liée à une base de données en MySQL.

Présentation de l'Application

Cloudy Pocket est une application de gestion de budget qui permet à l'utilisateur de créer des comptes bancaires sur l'application à l'image de ses comptes réels et d'y entrer toutes les lignes de transactions qu'il effectue. Lorsque ces lignes apparaissent sur ses comptes réels, il peut alors les pointer et ainsi garder le contrôle sur ses finances en anticipant chaque transaction.

Les principales fonctionnalités disponibles pour les utilisateurs :

  • Gestion du compte (Accès et modification des informations et du mot de passe)
  • personnalisation du thème de l'application
  • Gérer des comptes bancaires
  • Gérer ses transactions bancaires
  • Gérer les transferts entre les comptes
  • Gérer les échéanciers
  • Partager la gestion d'un compte avec un autre utilisateur (pratique pour les comptes joints par exemple)
  • Exporter ses comptes en CSV ou en PDF
  • Gérer ses tickets de caisse

Aspect Technique

Pour créer cette application j'ai suivi plusieurs étapes clés :

  • Conception
  • Développement
  • Tests et validations
  • Mise en production

Conception

Pendant cette phase j'ai rédigé le cahier des charges, les spécifications fonctionnelles et techniques ainsi qu'un plan de test et une documentation pour l'API.

Afin de facilité le développement de l'application j'ai aussi produit des diagrammes UML, un dictionnaire de données et des modélisations de la base de données selon la méthode Merise (Modèle Conceptuel de Données (MCD), Modèle Logique de Données (MLD) et Modèle Physique de données (MPD)).

J'ai également dû réfléchir à la sécurisation des données, j'ai naturellement haché les mots de passe avec Bcrypt mais cette application a pour but de gérer les données bancaires des utilisateurs. Bcrypt ne permettant pas de décrypter les données cryptées j'ai opté pour la norme AES (Advenced Encryption Standard), une méthode de cryptage symétrique par bloc très largement répandue autour de la planète.

Développement

Pour développer l'application, j'ai commencé par m'occuper des migrations et modèles de l'API.

J'ai ensuite implémenté les contrôleurs qui contiennent de nombreuses méthodes pour les multiples fonctionnalités de l'application.

Après la mise en place des routes j'ai pu commencer le client (partie visible par l'utilisateur) en React.

Tests et validations

Selon le plan de test établi lors de la phase de conception, j'ai implémenté des tests unitaires ainsi que des tests d'intégration sur les fonctionnalités les plus critiques de l'application. Pour cela j'ai utilisé PHPUnit qui est intégré nativement dans Laravel 10.

J'ai également testé chaque route individuellement grâce à Postman.

Mise en production

Cette application est hébergée avec O2switch.

Ayant déjà déployé de nombreux projets en React et en Laravel avec O2switch, cette phase a été relativement rapide.

Recommandations
Couverture du projet Booki
HTML
CSS
Figma

Booki

Un simple site développé pendant ma formation de développeur web.

Couverture du projet Fake Sarthe Tourism
React
Laravel
MySQL

Fake Sarthe Tourism

Une application fictive de tourisme en React et Laravel.

Couverture du projet Nina Carducci
S.E.O.
Accessibility
JavaScript

Nina Carducci

Projet d'optimisation d'un site et de correction de bugs.