Production-Ready | Panel Admin Complet | Material Design 3 | Architecture SΓ©curisΓ©e
Le Revendeur Centralisé (anciennement ShopEasy) est une application complète permettant la gestion de stocks, la prise de commandes et la vente en ligne, construite avec des standards professionnels.
- Authentification & RΓ΄les
- Panel Administrateur
- Catalogue & Panier
- SΓ©curitΓ© & Audit
- Documentation
- Status du Build
- RΓ΄les Distincts: ADMIN (Gestion) vs USER (Client)
- Email/Password Sign-Up & Sign-In avec validation stricte
- Redirection Dynamique selon le rôle après login
- Session SΓ©curisΓ©e persistante
- Browse All Products with grid layout
- Real-time Search functionality
- Category Filtering (All, Price Low, Price High, Trending)
- Product Details with full information
- Wishlist Support (icon ready)
- Offline Product Cache via Room Database
- Add/Remove Items with quantity management
- Real-time Price Calculation
- Persistent Storage (survives app restart)
- Swipe to Delete functionality
- Clear Cart option
- Checkout Process from cart
- Order History with complete tracking
- Order Status Updates (Pending β Shipping β Delivered)
- Order Details view with items breakdown
- Real-time Updates via Firestore
- Push Notifications via Firebase Cloud Messaging
- Order Status Alerts when status changes
- Promotional Messages support
- Custom Notification Handling
- Dark Mode Support with toggle in settings
- Premium Material Design 3 UI
- Smooth Animations (slide, fade, scale)
- Responsive Layouts for all screen sizes
- Accessibility Ready with proper contrast ratios
- Custom Design System (colors, typography, spacing)
- Gestion du Catalogue: Ajout, modification et suppression de produits
- Gestion des Commandes: Vue d'ensemble de toutes les transactions clients
- Support Client: RΓ©ception et lecture des messages de contact / FAQ
- Sécurité: Accès restreint via
User.Role.ADMIN - Auto-Provisioning: CrΓ©ation automatique du compte admin au premier lancement
- Offline-First Approach with Room caching
- Cache Invalidation strategy
- Smart Sync when connection restored
- Image Optimization with Glide
- Efficient Database Queries
| Category | Technology | Version |
|---|---|---|
| Language | Java | 11+ |
| API Level | Android | 24-34 |
| Architecture | MVVM + Clean | - |
| DI Framework | Hilt/Dagger | Latest |
- Navigation Component - Fragment navigation & deep linking
- ViewModel - UI state management
- LiveData - Reactive data binding
- Room - Local database with Type-safety
- DataStore - Modern SharedPreferences replacement
- View Binding - Type-safe view access
| Service | Usage |
|---|---|
| Authentication | User sign-in (Email + Google) |
| Firestore | Real-time database for products, orders |
| Storage | Image hosting for products |
| Cloud Messaging | Push notifications |
- Material Design 3 - Modern Material Design system
- Glide - Efficient image loading & caching
- Material Components - Pre-built Material widgets
- Lottie - (Ready for animations)
- Retrofit - (Via Firebase for now)
- Coroutines - Async operations
- Gson - JSON serialization
- ProGuard/R8 - Code obfuscation
ShopEasy recently underwent a complete design modernization with a professional Material Design 3 system:
- Primary: #2563EB (Modern Blue) - Primary actions
- Accent: #F59E0B (Vibrant Orange) - Highlights
- Success: #10B981 (Green) - Delivered status
- Error: #EF4444 (Red) - Errors & warnings
- Warning: #F59E0B (Orange) - Pending status
- Info: #3B82F6 (Blue) - Shipping status
- 19 Total Colors + full dark mode support
- Display: Poppins Bold (32sp) - Headers
- Heading 1-3: Poppins Semibold (24-20sp) - Section titles
- Body Large/Medium: Inter Regular (16-14sp) - Content
- Body Small: Inter Regular (12sp) - Secondary text
- Label: Poppins Semibold (12sp UPPERCASE) - Buttons, tags
- XS: 4dp - Minimal gaps
- SM: 8dp - Small gaps
- MD: 12dp - Medium gaps
- LG: 16dp - Large gaps
- XL: 24dp - Extra large
- XXL: 32dp - Maximum gaps
- Corner Radius: 8dp (small), 12dp (medium), 16dp (large), 24dp (full)
- Elevation Levels: 1dp-24dp following Material3 spec
- Shadows: Soft, layered shadows for depth
| Screen | Enhancements |
|---|---|
| Login/Signup | Gradient hero, premium cards, smooth inputs |
| Home | Header with greeting, search bar, category chips |
| Product Cards | Image with overlay, discount badge, ratings |
| Shopping Cart | Smooth quantity controls, price breakdown |
| Profile | Overlapped avatar, dark mode toggle |
| Orders | Color-coded status badges, quick actions |
Complete design documentation available:
ββ View Layer (Fragments)
β ββ Observe LiveData
β ββ Triggers UI updates
β
ββ ViewModel Layer
β ββ Manages UI state
β ββ Handles user interactions
β
ββ Data Layer (Repositories)
ββ Provides data from Local/Remote
ββ Room DB + Firestore
Presentation Layer (UI, ViewModels)
β
Domain Layer (Business Models)
β
Data Layer (Repositories)
β
Data Sources (Local DB, Remote API)
- Single Source of Truth for data
- Abstraction between layers
- Smart Caching with Room
- Conflict Resolution between local & remote
// Automatic injection of dependencies
@Inject
ProductRepository productRepository;
// Provides singletons for Firebase, DB, etc.
@Provides
@Singleton
FirebaseAuth provideAuth() { ... }ShopEasy/
βββ app/src/main/
β βββ java/com/ma/shopeasy/
β β βββ ShopEasyApp.java (Application entry point)
β β βββ ui/ (MVVM Presentation Layer)
β β β βββ MainActivity.java
β β β βββ auth/ (Login/Signup)
β β β βββ home/ (Product browsing)
β β β βββ products/ (Product details)
β β β βββ cart/ (Shopping cart)
β β β βββ orders/ (Order history)
β β βββ data/ (Data Layer)
β β β βββ repository/ (Single source of truth)
β β β βββ local/ (Room database)
β β β βββ remote/ (Firebase)
β β βββ domain/ (Business models)
β β β βββ models/
β β βββ di/ (Dependency injection)
β β βββ utils/ (Utilities & helpers)
β β
β βββ res/ (Resources)
β βββ layout/ (β¨ 9 redesigned layouts)
β βββ values/ (β¨ Design system)
β β βββ colors.xml (19 colors)
β β βββ dimens.xml (Spacing system)
β β βββ themes.xml (Material3)
β β βββ strings.xml
β βββ values-night/ (β¨ Dark mode)
β βββ drawable/ (β¨ Gradients & shapes)
β βββ font/ (β¨ Typography)
β βββ anim/ (β¨ Animations)
β
βββ docs/
β βββ architecture.md (Architecture overview)
β βββ diagrams/ (UML diagrams)
β
βββ design-docs/ (β¨ NEW)
βββ DESIGN_INDEX.md (Design navigation)
βββ DESIGN_SYSTEM.md (Color, typography, spacing)
βββ DESIGN_GUIDE.md (Developer guide)
βββ VISUAL_DESIGN_GUIDE.md (Visual specs)
βββ IMPLEMENTATION_CHECKLIST.md (QA checklist)
- Android Studio: Ladybug or newer
- JDK: Version 17+
- Gradle: 8.0+
- Firebase Project: Required for full functionality
git clone https://github.com/FrancKINANI/ShopEasy.git
cd ShopEasy# Go to Firebase Console: https://console.firebase.google.com/
# 1. Create a new project named "ShopEasy"
# 2. Create an Android app with package: com.ma.shopeasy
# 3. Download google-services.json
# 4. Place it in: app/google-services.json# Create local.properties if not exists
echo "sdk.dir=/path/to/android/sdk" > local.properties# Build the project (Verified Stable)
./gradlew assembleDebugRequired Services:
- β Authentication (Email + Google Sign-In)
- β Firestore Database
- β Cloud Storage
- β Cloud Messaging (FCM)
Firestore Collections Structure:
users/
βββ {userId}/
β βββ email: string
β βββ displayName: string
β βββ createdAt: timestamp
products/
βββ {productId}/
β βββ name: string
β βββ price: number
β βββ category: string
β βββ imageUrl: string
β βββ description: string
orders/
βββ {orderId}/
β βββ userId: string
β βββ items: array
β βββ totalPrice: number
β βββ status: string (pending/shipped/delivered)
β βββ createdAt: timestamp
./gradlew testDebugUnitTest./gradlew connectedAndroidTest./gradlew jacocoTestReport- Architecture Details - MVVM, Clean Architecture, Design Patterns
- Diagrams - Class, Use Case, Sequence diagrams
- Analysis Report - Complete technical analysis
- Design Index - Navigation guide for all design docs
- Design System - Colors, typography, spacing specs
- Visual Guide - Visual mockups and ASCII previews
- Developer Guide - How to use the design system
- Implementation Checklist - QA & verification
- Project Presentation - Stakeholder overview
- Follow Google Java Style Guide
- Use meaningful variable names
- Add comments for complex logic
- Keep methods focused (single responsibility)
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request with detailed description
- Use GitHub Issues for bug reports
- Provide detailed reproduction steps
- Include device/OS information
| Aspect | Status | Notes |
|---|---|---|
| Architecture | β Complete | MVVM + Clean (Hilt, Flow ready) |
| Admin Panel | β Complete | Full CRUD + Support management |
| Build Status | β STABLE | Compilation verified (Jan 15, 2026) |
| UI/UX Design | β Complete | Material3 system (Redesign done) |
| Documentation | β Complete | 50+ pages of guides & analysis |
BUILD SUCCESSFUL in 1m 55s
39 actionable tasks: 13 executed, 26 up-to-dateCompilation validΓ©e sur Android SDK 34 (Ladybug).
- Font files (TTF) need to be added from Google Fonts
- Image placeholders need replacement with actual product images
- Animation integration in Java code pending
- Tablet layout optimizations needed for larger screens
- Issues: Use GitHub Issues
- Email: kinani.franck@gmail.com
- Documentation: See docs/ folder
This project is licensed under the MIT License - see the LICENSE file for details.
- Material Design 3 - Design system inspiration
- Firebase - Backend services
- Android Jetpack - Architecture components
- Community - Open source contributions
Last Updated: January 15, 2026
Version: 2.5 (Admin Panel + Stability Fixes)
Status: π PRODUCTION-READY & STABLE