|
1 | | -# Firebase Studio |
| 1 | +# SimuBourse - Simulation Financière Immersive |
2 | 2 |
|
3 | | -This is a NextJS starter in Firebase Studio. |
| 3 | +SimuBourse est une plateforme de simulation financière avancée conçue pour offrir une expérience de trading et d'investissement riche et dynamique. Construite avec Next.js, Genkit pour l'IA, et Drizzle ORM, elle permet aux joueurs de trader des actions, de créer et gérer leurs propres entreprises, de parier sur des événements, et bien plus encore. |
4 | 4 |
|
5 | | -To get started, take a look at src/app/page.tsx. |
| 5 | +Ce guide vous accompagnera pas à pas pour installer et lancer l'application sur votre machine. |
| 6 | + |
| 7 | +**Lien du projet :** [https://github.com/softpython2884/SimuBourse.git](https://github.com/softpython2884/SimuBourse.git) |
| 8 | + |
| 9 | +## Table des Matières |
| 10 | + |
| 11 | +- [Fonctionnalités Clés](#fonctionnalités-clés) |
| 12 | +- [Stack Technique](#stack-technique) |
| 13 | +- [Démarrage Rapide](#démarrage-rapide) |
| 14 | + - [1. Prérequis](#1-prérequis) |
| 15 | + - [2. Installation du Projet](#2-installation-du-projet) |
| 16 | + - [3. Configuration de l'Environnement (.env)](#3-configuration-de-lenvironnement-env) |
| 17 | + - [4. Initialisation de la Base de Données](#4-initialisation-de-la-base-de-données) |
| 18 | + - [5. Lancer l'Application](#5-lancer-lapplication) |
| 19 | + |
| 20 | +## Fonctionnalités Clés |
| 21 | + |
| 22 | +- **Marché Dynamique :** Simulation en temps réel des prix pour les actions, les cryptomonnaies, et les matières premières. |
| 23 | +- **Gestion d'Entreprises :** Créez votre propre entreprise, gérez sa trésorerie, ses actifs, et décidez de la mettre en bourse (IPO) pour la rendre publique. |
| 24 | +- **Fonctionnalités IA avec Genkit :** |
| 25 | + - **Actualités Générées par l'IA :** Des événements de marché plausibles créés dynamiquement pour chaque actif. |
| 26 | + - **Conseiller en Investissement IA :** Analysez des articles pour recevoir des recommandations d'investissement personnalisées. |
| 27 | + - **Bot de Trading Automatique :** Laissez une IA gérer votre portefeuille et exécuter des transactions stratégiques pour vous. |
| 28 | +- **Marché des Paris :** Pariez sur l'issue d'événements futurs, qu'ils soient créés par des joueurs ou par l'IA. |
| 29 | +- **Minage de Cryptomonnaies :** Achetez du matériel de minage virtuel et générez des récompenses passives en Bitcoin. |
| 30 | +- **Progressive Web App (PWA) :** Installez l'application sur votre bureau ou votre téléphone pour une expérience plus rapide et immersive. |
| 31 | + |
| 32 | +## Stack Technique |
| 33 | + |
| 34 | +- **Framework :** [Next.js](https://nextjs.org/) (avec App Router) |
| 35 | +- **Intelligence Artificielle :** [Genkit](https://firebase.google.com/docs/genkit) |
| 36 | +- **Base de Données & ORM :** [PostgreSQL](https://www.postgresql.org/) avec [Drizzle ORM](https://orm.drizzle.team/) |
| 37 | +- **UI :** [React](https://react.dev/), [TypeScript](https://www.typescriptlang.org/), [Tailwind CSS](https://tailwindcss.com/) |
| 38 | +- **Composants :** [ShadCN/UI](https://ui.shadcn.com/) |
| 39 | + |
| 40 | +## Démarrage Rapide |
| 41 | + |
| 42 | +Suivez ces étapes pour lancer l'application sur votre machine locale. |
| 43 | + |
| 44 | +### 1. Prérequis |
| 45 | + |
| 46 | +Avant de commencer, assurez-vous d'avoir les éléments suivants installés sur votre ordinateur : |
| 47 | + |
| 48 | +- **Node.js :** Version 18 ou supérieure. Vous pouvez le télécharger sur [nodejs.org](https://nodejs.org/). |
| 49 | +- **npm** (ou yarn) : Inclus avec Node.js. |
| 50 | +- **Git :** Pour cloner le projet. [Télécharger Git](https://git-scm.com/downloads). |
| 51 | +- **Une base de données PostgreSQL :** L'application a besoin d'une base de données PostgreSQL pour fonctionner. Vous avez deux options principales : |
| 52 | + - **Docker (Recommandé) :** Si vous avez [Docker Desktop](https://www.docker.com/products/docker-desktop/), c'est la méthode la plus simple pour lancer une base de données localement. |
| 53 | + - **Service Hébergé :** Vous pouvez utiliser un service de base de données en ligne comme [Supabase](https://supabase.com/), [Neon](https://neon.tech/), ou [Vercel Postgres](https://vercel.com/storage/postgres). |
| 54 | + |
| 55 | +### 2. Installation du Projet |
| 56 | + |
| 57 | +Ouvrez votre terminal et suivez ces commandes : |
| 58 | + |
| 59 | +```bash |
| 60 | +# 1. Clonez le projet depuis GitHub |
| 61 | +git clone https://github.com/softpython2884/SimuBourse.git |
| 62 | + |
| 63 | +# 2. Accédez au dossier du projet |
| 64 | +cd SimuBourse |
| 65 | + |
| 66 | +# 3. Installez toutes les dépendances nécessaires |
| 67 | +npm install |
| 68 | +``` |
| 69 | + |
| 70 | +### 3. Configuration de l'Environnement (.env) |
| 71 | + |
| 72 | +Ce fichier contiendra vos clés secrètes. Il n'est pas partagé sur GitHub pour des raisons de sécurité. |
| 73 | + |
| 74 | +**a. Créez le fichier :** |
| 75 | +À la racine du projet `SimuBourse`, créez un nouveau fichier nommé `.env`. |
| 76 | + |
| 77 | +**b. Remplissez le fichier :** |
| 78 | +Copiez et collez le modèle suivant dans votre fichier `.env`, puis remplacez les valeurs par vos propres informations. |
| 79 | + |
| 80 | +```env |
| 81 | +# URL de connexion à votre base de données PostgreSQL |
| 82 | +# Remplacez les valeurs par les vôtres. |
| 83 | +# Format : postgres://UTILISATEUR:MOT_DE_PASSE@HOTE:PORT/NOM_DE_LA_BASE |
| 84 | +DATABASE_URL="postgres://pterodactyl:Pl3453Ch4n63M3!@pods.forgenet.fr:5432/pterodactyl" |
| 85 | +
|
| 86 | +# Clé API pour Google AI (utilisée par Genkit) |
| 87 | +# Obtenez-en une gratuitement sur https://makersuite.google.com/ |
| 88 | +GOOGLE_API_KEY="VOTRE_CLE_API_GOOGLE_AI" |
| 89 | +
|
| 90 | +# Clé secrète pour la session (utilisez une chaîne de caractères longue et aléatoire) |
| 91 | +# Vous pouvez en générer une ici : https://generate-secret.vercel.app/32 |
| 92 | +JWT_SECRET_KEY="VOTRE_CLE_SECRETE_POUR_JWT" |
| 93 | +``` |
| 94 | + |
| 95 | +### 4. Initialisation de la Base de Données |
| 96 | + |
| 97 | +Maintenant que votre application sait comment se connecter à votre base de données (grâce au fichier `.env`), nous devons y créer les tables (`users`, `assets`, etc.). |
| 98 | + |
| 99 | +**Lancez la commande suivante dans votre terminal :** |
| 100 | + |
| 101 | +```bash |
| 102 | +npm run db:push |
| 103 | +``` |
| 104 | + |
| 105 | +Cette commande lit le schéma défini dans `src/lib/db/schema.ts` et crée automatiquement toute la structure nécessaire dans votre base de données PostgreSQL. **Vous ne devez exécuter cette commande qu'une seule fois lors de la première installation.** |
| 106 | + |
| 107 | +### 5. Lancer l'Application |
| 108 | + |
| 109 | +Vous y êtes presque ! Vous pouvez maintenant lancer l'application. |
| 110 | + |
| 111 | +#### Mode Développement |
| 112 | +Idéal pour développer. Le site se rechargera automatiquement à chaque modification du code. |
| 113 | + |
| 114 | +```bash |
| 115 | +npm run dev |
| 116 | +``` |
| 117 | +L'application sera disponible sur `http://localhost:9002`. |
| 118 | + |
| 119 | +#### Mode Production |
| 120 | +Compile l'application pour des performances optimales. C'est le mode à utiliser pour un déploiement public. |
| 121 | + |
| 122 | +```bash |
| 123 | +npm run prod |
| 124 | +``` |
| 125 | +Cette commande exécute `next build` puis `next start`. L'application sera également disponible sur `http://localhost:9002` (par défaut). |
| 126 | + |
| 127 | +### ** Attentions, je crois qu'il faut une config postgres spécifique, sinon les info tel que les prix ne sont pas save ! ** |
0 commit comments