J'ai choisi de réaliser ce projet en me basant sur le thème de l'application bancaire car j'ai tout de suite pensé à l'interface de Revolut, que j'apprécie particulièrement. Pour ce projet, j'ai utilisé Next.js pour la partie front-end et Strapi pour la partie back-end. J'ai également réalisé la partie back-end, car Strapi permet de générer une API fonctionnelle de manière assez rapide pour ce type de projet et aussi parce que je voulais me créer un boilerplate Next/Strapi en parallèle du test (C'est une stack que j'utilise souvent).
- Next.js : Framework React pour le rendu côté serveur et la génération de sites statiques.
- React : Bibliothèque JavaScript pour la création d'interfaces utilisateur.
- Shadcn/ui & Tailwindcss : Pour un style modulaire et réutilisable.
- Recharts : Librairie pour l'affichage des graphiques.
- Strapi : CMS headless pour la gestion des contenus et la création d'APIs.
- SQLite : Base de données utilisée par défaut par Strapi pour le développement.
- PostgreSQL : Base de données utilisée par Strapi en production avec docker.
- Node.js
- npm ou yarn
- Git
- Cloner le dépôt :
git clone https://github.com/Ahmed-Mouzoune/itinov.git cd itinov
- Installer les dépendances du front-end :
cd itinov/front npm install
- Installer les dépendances du back-end :
cd itinov/back npm install
- Lancer l'application Strapi (back-end) :
cd itinov/back npm run develop
- Lancer l'application Next.js (front-end) :
cd itinov/front npm run dev
Après avoir suivi les étapes d'installation, vous pouvez accéder à l'application via :
- Front-end (Next.js) : http://localhost:3000
- Back-end (Strapi) : http://localhost:1337
-
Dashboard des Comptes :
- Voir la liste des comptes avec leurs soldes.
- Voir les dernières opérations effectuées pour chaque compte.
- Effectuer des retraits, des dépôts et des virements entre comptes.
- Indicateur visuel pour les soldes débiteurs.
-
Vues spécifiques :
- Vue pour le retrait d'argent.
- Vue pour le dépôt d'argent.
- Vue pour le transfert d'argent entre comptes.
- Gestion des Comptes :
- Gestion des opérations de dépôt, retrait et virement.
- Historique des opérations avec détails (date, montant, type, auteur, solde).
front/
│── public/
│── src/
│ ├── actions/
│ ├── app/
│ ├── components/
│ ├── context/
│ ├── interfaces/
│ ├── lib/
│ └── services/
Ce dossier contient les fichiers statiques qui sont accessibles publiquement, comme les images, les fichiers CSS et JavaScript.
Le dossier principal pour le code source de l'application.
- actions/ : Contient les fichiers d'actions pour la gestion des actions liées aux formulaires.
- app/ : Contient les fichiers de routing et de page pour Next.js (App Router).
- components/ : Contient les composants réutilisables de l'application.
- context/ : Contient les contextes React pour la gestion globale de l'état de l'application.
- lib/ : Contient les bibliothèques et les utilitaires partagés.
- types/ : Contient les définitions de types TypeScript pour l'application.
back/
│── config/
│── database/
│── public/
│── src/
│ ├── admin/
│ ├── api/
│ ├── extensions/
│ ├── middlewares/
│ └── index.ts
│── tests/
└── types/
Ce dossier contient les configurations de l'application, y compris les configurations de la base de données, les configurations des serveurs, etc.
Ce dossier contient les fichiers relatifs à la base de données, comme les fichiers de migration.
Ce dossier contient les fichiers statiques qui sont accessibles publiquement, comme les images, les fichiers CSS et JavaScript.
Le dossier principal pour le code source de l'application.
- admin/ : Contient les fichiers relatifs à l'interface d'administration de Strapi.
- api/ : Contient les collections de données et les fichiers relatifs aux APIs créées dans Strapi (controllers, routes, services).
- extensions/ : Contient les extensions et les personnalisations spécifiques à l'application.
- middlewares/ : Contient les middlewares personnalisés utilisés dans l'application.
- index.ts : Point d'entrée principal pour le code source TypeScript.
Ce dossier contient les tests unitaires et d'intégration pour l'application.
Ce dossier contient les définitions de types TypeScript pour l'application.
Merci d'avoir consulté ce projet. N'hésitez pas à me contacter pour toute question ou suggestion.