Skip to content

henintsoaheriniaina/powerup-flutter

Repository files navigation

PowerUp - Application E-commerce Gaming

Application Flutter complète de e-commerce gaming avec SQLite pour le stockage local.

🎮 Fonctionnalités

  • Authentification : Connexion et inscription avec hashage de mot de passe
  • Catalogue produits : 90 produits pré-remplis dans 9 catégories avec images
  • Recherche : Recherche en temps réel par nom ou catégorie
  • Catégories : Claviers, Souris, Casques, Manettes, GPU, CPU, RAM, SSD, Cartes Mères
  • Panier : Ajout, modification et suppression de produits avec badge de compteur
  • Commandes : Passage de commande et historique complet
  • Profil : Gestion du profil utilisateur (nom, email, mot de passe)
  • Navigation : Menu drawer avec accès au profil, panier, commandes et déconnexion
  • Prix en MGA : Tous les prix sont affichés en Ariary malgache
  • Design moderne : Interface blanche claire avec accents violets

🎨 Design System

  • baseViolet : #8E6CEF (Actions principales et fond login/register)
  • baseWhite : #FFFFFF (Background principal)
  • baseBlack : #272727 (Textes principaux)
  • baseYellow : #FFB632 (Logo éclair)
  • baseGrayLight : #F4F4F4 (Cartes et zones secondaires)
  • Interface claire : Design moderne avec fond blanc et accents colorés

📁 Structure du Projet

lib/
├── core/
│   └── app_colors.dart          # Système de couleurs centralisé
├── database/
│   └── database_helper.dart     # Gestionnaire SQLite
├── models/
│   └── models.dart              # Modèles de données
├── screens/
│   ├── login_screen.dart        # Connexion (fond violet)
│   ├── register_screen.dart     # Inscription (auto-login)
│   ├── home_screen.dart         # Accueil avec drawer et badge panier
│   ├── category_screen.dart     # Liste par catégorie
│   ├── product_detail_screen.dart # Détails produit
│   ├── cart_screen.dart         # Panier avec badge
│   ├── orders_screen.dart       # Historique commandes
│   └── profile_screen.dart      # Gestion du profil utilisateur
└── main.dart                     # Point d'entrée

🚀 Installation

1. Prérequis

  • Flutter SDK >= 3.0.0
  • Dart >= 3.0.0
  • Android Studio ou VS Code avec extensions Flutter

2. Configuration

# Cloner le projet
git clone https://github.com/henintsoaheriniaina/powerup-flutter.git
cd powerup

# Installer les dépendances
flutter pub get

3. Dépendances principales

dependencies:
  sqflite: ^2.3.0 # Base de données SQLite
  path: ^1.8.3 # Gestion des chemins
  path_provider: ^2.1.1 # Accès au système de fichiers
  crypto: ^3.0.3 # Hashage des mots de passe

4. Assets (Images)

Créer le dossier assets/images/ et y placer les images :

Périphériques Gaming :

  • c1.jpg à c10.jpg - Claviers
  • s1.jpg à s10.jpg - Souris
  • ca1.jpg à ca10.jpg - Casques
  • m1.jpg à m10.jpg - Manettes

Composants PC :

  • graph1.jpg à graph10.jpg - GPU
  • proc1.jpg à proc10.jpg - CPU
  • ram1.jpg à ram10.jpg - RAM
  • ssd1.jpg à ssd10.jpg - SSD
  • cm1.jpg à cm10.jpg - Cartes Mères

Note : Les images sont optionnelles. L'app affiche les images si elles existent, sinon elle utilise des icônes Material Design par défaut. Pour un rendu optimal, placez vos propres images de produits dans le dossier assets.

5. Lancer l'application

# Mode debug
flutter run

# Mode release
flutter run --release

💾 Base de Données

Tables SQLite

  1. Users

    • id INTEGER PRIMARY KEY
    • name TEXT
    • email TEXT UNIQUE
    • password TEXT (SHA-256)
  2. Products

    • id INTEGER PRIMARY KEY
    • name TEXT
    • price REAL (en MGA)
    • category TEXT
    • imagePath TEXT
  3. Cart

    • id INTEGER PRIMARY KEY
    • productId INTEGER
    • quantity INTEGER
  4. Orders

    • id INTEGER PRIMARY KEY
    • userId INTEGER
    • date TEXT (ISO 8601)
    • totalAmount REAL
    • status TEXT
    • products TEXT (JSON)

Initialisation

La base de données est automatiquement créée et remplie avec 90 produits au premier lancement.

🎯 Utilisation

Navigation

  1. Inscription/Connexion → Créez un compte (connexion automatique) ou connectez-vous
  2. Menu Drawer → Accédez au profil, panier (avec badge), commandes et déconnexion
  3. Accueil → Recherchez ou naviguez par catégorie
  4. Détails Produit → Ajustez la quantité et ajoutez au panier (badge mis à jour)
  5. Panier → Modifiez les quantités et validez la commande
  6. Profil → Modifiez vos informations et changez votre mot de passe
  7. Commandes → Consultez l'historique via le drawer ou l'icône en haut

🔧 Personnalisation

Modifier les couleurs

Éditez lib/core/app_colors.dart :

static const Color baseViolet = Color(0xFF8E6CEF);

Ajouter des produits

Modifiez _insertInitialProducts() dans database_helper.dart :

{'name': 'Nouveau Produit', 'price': 500000.0, 'category': 'GPU', 'imagePath': 'assets/images/new.jpg'}

Erreur de base de données

flutter clean
flutter pub get
flutter run

Problème d'assets

Vérifiez que pubspec.yaml contient :

flutter:
  assets:
    - assets/images/

📄 Licence

Projet d'apprentissage Flutter - Libre d'utilisation

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou un pull request.


Powered by Henintsoa Heriniaina (Power) ⚡

About

E-comerce Gaming Application

Topics

Resources

Stars

Watchers

Forks

Contributors