Quark OIA frontend
  • TypeScript 99.5%
  • CSS 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
andryranzadrakoto1 e69178d494
Some checks failed
Deploy / deploy-dev (push) Has been skipped
Deploy / deploy-develop (push) Has been skipped
Deploy / deploy-prod (push) Has been cancelled
feat(assistant): further improve user greeting and conversation management
- Enhanced AssistantChatModal to better utilize user data for personalized interactions.
- Improved layout and responsiveness of AssistantChatInput based on user input state.
- Updated ConversationFolderSection to include more intuitive dropdown menus for conversation management.
- Streamlined project and conversation display logic in ConversationsSidebar.
- Added additional localization strings for new features.
2026-10-16 12:31:41 +03:00
.forgejo/workflows feat(assistant): further improve user greeting and conversation management 2026-10-16 12:31:41 +03:00
.vscode modif generation of RS to same to email generation image 2025-12-09 17:04:16 +01:00
docs feat(agenda): enhance availability invitation features and UI components 2026-10-08 23:43:09 +03:00
public Remove unused SVG file and enhance payment components by adding SEPA direct debit support. Introduce new visual components for SEPA details, update localization files for new labels, and refactor payment history views to accommodate SEPA information. 2026-07-09 18:49:44 +03:00
scripts Add Dutch language support across various components and locales 2026-05-29 16:26:33 +03:00
src Merge branch 'fix/assistant2' into 'develop' 2026-10-14 06:40:26 +00:00
.dockerignore correct env in docker 2025-11-19 12:19:14 +01:00
.env.example Enhance Outlook integration and error handling in email components 2026-06-22 23:24:05 +03:00
.gitignore add nom et email lors du upload csv 2026-04-14 13:06:41 +01:00
.gitlab-ci.yml change real backend 2026-06-11 15:18:04 +03:00
AUDIT_REFACTORING_TICKETS.md add step to generation image 2026-04-09 17:03:44 +01:00
axios.d.ts feat(api-client): add server-error custom error, type guard and throw custom error to handle in catch 2025-09-20 16:24:59 +03:00
docker-compose.yaml correct env in docker 2025-11-19 12:19:14 +01:00
Dockerfile conflit regle 2025-11-21 14:37:37 +03:00
ecosystem.config.cjs change host 2025-10-15 08:29:06 +03:00
eslint.config.js Enhance ESLint configuration to allow console warnings and errors while cleaning up console logs across various components. This includes refactoring code to remove unnecessary console statements and improving code readability. 2026-07-17 13:40:27 +03:00
index.html Update localization keys and enhance HTML structure for improved accessibility and styling 2026-05-04 12:09:06 +03:00
nginx.conf feat(nginx): add cache control headers to improve resource management 2026-04-15 17:24:09 +03:00
package-lock.json Add booking events feature with internationalization support 2026-06-04 21:21:24 +03:00
package.json Update localization files and development script 2026-09-11 16:45:44 +03:00
README.md Update README.md to reflect new project structure and components, including additions for admin, back-office, email-inbox-v2, payments, rag, whatsapp, and more. Also, update license information to specify all rights reserved for Quark Développement. 2026-07-22 22:44:37 +03:00
tailwind.config.js integration reation list 2025-09-29 19:32:35 +03:00
tsconfig.app.json Initial commit 2025-05-22 11:08:22 +03:00
tsconfig.json feat: add Docker for testing application without installing all dependencies 2025-08-14 08:54:45 +03:00
tsconfig.node.json Fix for prod 2025-05-22 12:51:45 +03:00
vite.config.d.ts corect conflit 2026-04-10 22:55:20 +01:00
vite.config.js feat(csv): enhance CSV management with new upload features and routing updates 2026-10-08 17:55:41 +03:00
vite.config.ts Enhance template editing functionality and localization updates 2026-05-22 14:36:20 +03:00

OIA Client

Application web de gestion de communication et de marketing digital développée avec React, TypeScript et Vite.

📋 Description

OIA (Outils d'Intelligence Artificielle) est une plateforme complète de gestion de communication qui permet de :

  • Gérer les emails (boîte mail, synchronisation, factures)
  • Créer et gérer des templates d'emails et de posts pour réseaux sociaux
  • Effectuer du publipostage (mailing et réseaux sociaux)
  • Gérer les interactions sociales
  • Créer et gérer des devis
  • Consulter les analytics
  • Gérer les abonnements et paramètres

🚀 Technologies

Frontend

  • React 19 - Bibliothèque UI
  • TypeScript - Typage statique
  • Vite - Build tool et dev server
  • Tailwind CSS - Framework CSS
  • Redux Toolkit - Gestion d'état
  • React Router - Routage
  • React Hook Form - Gestion de formulaires
  • Axios - Client HTTP
  • i18next - Internationalisation

UI Components

  • Radix UI - Composants accessibles
  • Framer Motion - Animations
  • Lucide React - Icônes
  • React Big Calendar - Calendrier
  • MDX Editor - Éditeur markdown
  • React Quill - Éditeur de texte riche

Autres

  • Stripe - Paiements
  • Socket.io - Communication temps réel
  • date-fns - Manipulation de dates
  • JWT Decode - Authentification

📦 Installation

Prérequis

  • Node.js 22 ou supérieur
  • npm ou yarn

Étapes d'installation

  1. Cloner le dépôt :
git clone <repository-url>
cd oia-client
  1. Installer les dépendances :
npm install
  1. Configurer les variables d'environnement : Créer un fichier .env à la racine du projet avec les variables nécessaires.

  2. Lancer le serveur de développement :

npm run dev

L'application sera accessible sur http://localhost:5173 (ou le port configuré par Vite).

🛠️ Scripts disponibles

  • npm run dev - Lance le serveur de développement avec HMR
  • npm run build - Compile l'application pour la production
  • npm run preview - Prévisualise la build de production
  • npm run lint - Exécute ESLint pour vérifier le code

🐳 Déploiement avec Docker

Build et exécution

  1. Construire l'image Docker :
docker build -t oia-client .
  1. Lancer avec Docker Compose :
docker-compose up -d

L'application sera accessible sur http://localhost:4173.

Structure Docker

Le Dockerfile utilise un build multi-stage :

  • Stage 1 (deps) : Installation des dépendances
  • Stage 2 (builder) : Compilation de l'application
  • Stage 3 (prod) : Serveur Nginx pour servir l'application

📁 Structure du projet

oia-client/
├── src/
│   ├── components/          # Composants React
│   │   ├── Abonnement/      # Gestion des abonnements
│   │   ├── admin/           # Administration
│   │   ├── back-office/     # Back-office
│   │   ├── create-template/ # Création de templates
│   │   ├── devis/           # Gestion des devis
│   │   ├── email-inbox/     # Boîte mail
│   │   ├── email-inbox-v2/  # Boîte mail v2
│   │   ├── form-builder/    # Constructeur de formulaires
│   │   ├── mailing/         # Publipostage
│   │   ├── paiements/       # Paiements
│   │   ├── rag/             # RAG / base de connaissances
│   │   ├── social-media/    # Réseaux sociaux
│   │   ├── whatsapp/        # WhatsApp
│   │   └── ...
│   ├── pages/               # Pages de l'application
│   ├── common/              # Composants UI partagés
│   ├── hooks/               # Hooks personnalisés
│   ├── redux/               # Store Redux et slices
│   ├── services/            # Services API
│   ├── providers/           # Providers React
│   ├── contexts/            # Contextes React
│   ├── router/              # Configuration des routes
│   ├── i18n/                # Internationalisation
│   ├── observability/       # Observabilité / monitoring
│   ├── configs/             # Configurations & traductions
│   ├── constants/           # Constantes
│   ├── entity/              # Entités métier
│   ├── types/               # Types TypeScript
│   ├── utils/               # Utilitaires
│   ├── assets/              # Assets source
│   └── tutorial/            # Tutoriels / onboarding
├── public/                  # Assets statiques
├── scripts/                 # Scripts utilitaires
├── docs/                    # Documentation
├── Dockerfile               # Configuration Docker
├── docker-compose.yaml      # Configuration Docker Compose
└── nginx.conf               # Configuration Nginx

🔐 Authentification

L'application utilise JWT pour l'authentification. Les routes sont protégées via le composant ProtectedRoute.

🌐 Internationalisation

L'application supporte plusieurs langues via i18next. Les traductions sont stockées dans src/configs/translations/.

📝 Fonctionnalités principales

Communication

  • Boîte mail : Gestion et synchronisation des emails
  • Messages réseaux : Gestion des interactions sur les réseaux sociaux
  • Templates : Création et gestion de templates d'emails et de posts
  • Mailing : Publipostage d'emails
  • Publipostage : Publication sur les réseaux sociaux

Gestion

  • Devis : Création et gestion de devis (avec support audio, photo, import de fichiers)
  • Analytics : Tableaux de bord et statistiques
  • Paramètres : Configuration de l'application
  • Abonnements : Gestion des abonnements (intégration Stripe)

🔧 Configuration

Vite

Le serveur de développement est configuré pour accepter les connexions depuis plusieurs hosts (voir vite.config.ts).

Production (cache navigateur et SPA)

Après un déploiement, un index.html mis en cache alors que les chunks JS ont changé peut provoquer des erreurs de chargement de modules. Recommandations :

  • Ne pas servir index.html avec un cache long : Cache-Control: no-cache ou max-age=0, must-revalidate.
  • Autoriser un cache long pour les assets hashés (/assets/*.js, etc.).
  • Vérifier la configuration Nginx / CDN / CloudFront en conséquence.
  • Côté client, en cas d’erreur de chunk, l’app peut recharger avec un paramètre d’URL _oia_v= pour forcer un nouvel index.html ; il est retiré de la barre d’adresse après chargement (voir src/observability/reloadWithCacheBust.ts).
  • Le client envoie uniquement les erreurs (level: "error") vers POST …/api/logs — voir docs/API_CLIENT_LOGS.md pour le contrat détaillé (entrée / sortie).

ESLint

La configuration ESLint utilise TypeScript ESLint avec des règles recommandées. Pour activer des règles plus strictes, voir la configuration dans eslint.config.js.

📄 Licence

Tous droits réservés — Quark Développement.

👥 Équipe

[À définir]