💬 O’Chat — Chat IA (Svelte 5 + PocketBase + Mistral)
Application de chat IA développée pendant ma formation front-end, inspirée d’un ChatGPT “mini” :
- multi-conversations
- historique persistant
- UI responsive
- intégration d’une API IA (Mistral)
- stockage des conversations/messages via PocketBase
🖼️ Aperçu
Desktop
Mobile
✨ Fonctionnalités
- 🔐 Saisie et validation d’un token Mistral
- 💬 Conversation avec l’IA (Mistral Chat Completions)
- 🧵 Gestion de plusieurs conversations (création / sélection / suppression)
- 💾 Persistance des messages et conversations (PocketBase)
- 📜 Scroll automatique + focus automatique sur l’input
- 🕒 Horodatage des messages
- 🧾 Rendu Markdown côté assistant (svelte-exmarkdown)
🧠 Ce que j’ai appris (front-end)
- Svelte 5 : réactivité (
$state), cycle de vie (onMount), tick()
- Gestion d’état UI : loading, erreurs, validation, sync UI ↔ données
- API & réseau : fetch, headers, gestion d’erreurs, parsing de réponse
- UX : scroll automatique, désactivation inputs pendant requête, feedback “IA écrit…”
- Organisation projet : séparation logique (PocketBase / Mistral / UI)
🏗️ Tech stack
- Svelte 5 + Vite
- PocketBase (stockage conversations/messages)
- API Mistral (LLM)
- JavaScript (ESM)
- CSS custom
- svelte-exmarkdown (Markdown)
📁 Structure (simplifiée)
app/ # Front Svelte (Vite)
pocketbase/ # PocketBase + migrations
docs/ # docs / notes éventuelles