Skip to content

UBONGO2000/FINOVA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FINOVA - Dashboard Financier

Un tableau de bord financier SPA (Single Page Application) permettant de suivre les cryptomonnaies, les taux de change et simuler des prêts.

FINOVA

🚀 Fonctionnalités

📊 Dashboard

  • KPIs crypto (Market Cap, Bitcoin, taux EUR/USD, EUR/GBP)
  • Top 5 cryptomonnaies par capitalisation
  • Taux de change majeurs en temps réel
  • Accès rapide aux autres sections

💱 Convertisseur de Devises

  • Conversion entre 15 devises
  • Taux de change fournis par la BCE (Frankfurter API)
  • Graphique historique (7j, 30j, 90j)
  • Tableau des taux EUR vs principales devises

🪙 Tracker Crypto

  • Top 10 cryptomonnaies par market cap
  • Graphiques interactifs (7j, 30j, 90j, 1an)
  • Sparklines 7 jours dans le tableau
  • Données globales du marché (dominance, market cap)
  • API: CoinGecko

🏦 Simulateur de Prêt

  • Calcul de mensualité (formule amortissement)
  • Tableau d'amortissement (vue annuelle/mensuelle)
  • Graphique d'évolution capital/intérêts
  • Support assurance emprunteur

🛠️ Technologies

Technologie Usage
Vanilla JS ES6+ Modules, Pas de framework
CSS3 Variables CSS, Grid, Flexbox, Animations
APIs CoinGecko, Frankfurter (BCE)
Fonts Sora (UI), JetBrains Mono (nombres)

📁 Structure du Projet

projet2_finova/
├── index.html              # Point d'entrée HTML
├── css/
│   ├── reset.css          # Reset CSS
│   ├── variables.css      # Design tokens + Dark Mode
│   ├── layout.css         # Structure (sidebar, topbar)
│   ├── components.css     # Composants UI
│   └── animations.css     # Animations
├── js/
│   ├── app.js            # Point d'entrée JS
│   ├── api/              # Services API
│   │   ├── exchange.js   # Taux de change
│   │   ├── crypto.js     # Données crypto
│   │   └── loan.js       # Calculateur prêt
│   ├── pages/            # Pages SPA
│   │   ├── dashboard.js
│   │   ├── currency.js
│   │   ├── crypto.js
│   │   └── loan.js
│   ├── components/       # Composants
│   │   └── chart.js      # LineChart, Sparkline
│   └── utils/            # Utilitaires
│       ├── router.js     # Gestionnaire de navigation
│       ├── http.js       # Client HTTP (cache, retry)
│       ├── format.js     # Formatage nombres/devises
│       ├── toast.js      # Notifications
│       ├── clock.js      # Horloge temps réel
│       └── sidebar.js    # Navigation mobile
└── README.md

⚡ Installation & Lancement

Prérequis

  • Navigateur moderne (Chrome, Firefox, Safari, Edge)
  • Serveur HTTP local (ES Modules requis)

Méthode 1: VS Code Live Server

  1. Ouvrir le projet dans VS Code
  2. Installer l'extension "Live Server"
  3. Clic droit sur index.html → "Open with Live Server"

Méthode 2: Python

# Python 3
python -m http.server 8000

# Ouvrir http://localhost:8000

Méthode 3: Node.js

# Installer serve
npm install -g serve

# Lancer
serve .

# Ouvrir http://localhost:3000

🎨 Design System

Palette de Couleurs

/* Primaire */
--color-primary: #2563eb (blue-600)

/* Success/Danger */
--color-success: #10b981 (emerald-500)
--color-danger: #ef4444 (red-500)

/* Fond */
--color-bg: #f8f9fc (gray-50)
--color-bg-card: #ffffff
--color-bg-sidebar: #111622 (gray-900)

Typographie

  • UI: Sora (Google Fonts)
  • Nombres: JetBrains Mono (monospace)

Dark Mode

Le projet supporte automatiquement le mode sombre via prefers-color-scheme:

@media (prefers-color-scheme: dark) {
  :root { /* Variables adaptées */ }
}

🔧 API & Cache

APIs Utilisées

API Endpoint Usage
Frankfurter api.frankfurter.app Taux de change (EUR)
CoinGecko api.coingecko.com Crypto market data

Gestion du Cache

  • Crypto: 30 secondes TTL
  • Taux de change: 5 minutes TTL
  • Retry: 3 tentatives avec backoff exponentiel

📱 Responsive

  • Desktop: > 900px (sidebar visible)
  • Mobile: < 900px (sidebar drawer, menu hamburger)

🐛 Debug

Console

Les erreurs sont loguées avec le préfixe du module:

console.error('[Dashboard] Error:', err);
console.log('[HTTP] Cache hit:', url);

Forcer le Refresh

Les données sont mises en cache. Pour forcer un refresh:

  1. Vider le cache navigateur
  2. Utiliser "Hard Reload" (Ctrl+Shift+R)

Auteur

Georges NTCHANGA Étudiant en Bachelor Développeur Web/Mobile — IPI Toulouse

GitHub LinkedIn


Projet personnel — 2026

About

Dashboard bancaire & financier personnel, style Stripe, ES Modules.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors