Application web complète pour résoudre et expliquer des problèmes mathématiques étape par étape. Prenez une photo d'un problème, obtenez une solution détaillée avec explications pédagogiques, et discutez avec l'IA pour mieux comprendre.
- 📷 Upload d'image ou capture photo - Prenez une photo de votre problème mathématique (mobile-friendly)
- 🔍 Extraction LaTeX automatique - Via OpenAI Vision API pour reconnaître les formules
- 🧮 Résolution exacte - Via WolframAlpha API pour obtenir la réponse précise
- 📚 Explications pédagogiques - Explications étape par étape générées par OpenAI LLM
- 💬 Chat interactif - Widget de chat flottant pour poser des questions sur la solution
- 📄 Export PDF - Exportez la solution complète en PDF avec formules mathématiques nettes
- 📱 Interface responsive - Design mobile-first avec Tailwind CSS
- 🌍 Multilingue - Support français et anglais
- 📊 Historique - Sauvegarde automatique de vos problèmes résolus
- Python 3.8+
- Node.js 16+
- Clés API :
- OpenAI API Key
- WolframAlpha App ID (optionnel)
- Cloner le repository
git clone https://github.com/votre-username/math-conquest-assistant.git
cd math-conquest-assistant- Configurer le backend
cd backend
pip install -r requirements.txtCréer un fichier .env dans le dossier backend :
OPENAI_API_KEY=votre_clé_openai
WOLFRAM_APP_ID=votre_app_id_wolfram- Configurer le frontend
cd frontend
npm install- Lancer l'application
Backend (dans backend/) :
python main.pyFrontend (dans frontend/) :
npm run devL'application sera accessible sur http://localhost:5173
- React 18 - Framework UI
- Vite - Build tool ultra-rapide
- Tailwind CSS - Framework CSS utility-first
- KaTeX - Rendu des formules mathématiques LaTeX
- jsPDF + html2canvas - Export PDF
- FastAPI - Framework web Python moderne
- OpenAI API - Vision API pour extraction LaTeX + Chat API pour explications
- WolframAlpha API - Résolution mathématique exacte
- Python 3.8+ - Langage backend
Math-Conquest-Assistant/
├── backend/
│ ├── main.py # API FastAPI principale
│ ├── requirements.txt # Dépendances Python
│ └── .env # Variables d'environnement (à créer)
├── frontend/
│ ├── src/
│ │ ├── components/ # Composants React
│ │ ├── contexts/ # Contextes (Theme, Language)
│ │ └── utils/ # Utilitaires
│ ├── package.json
│ └── vite.config.js
└── README.md
- Uploader une image : Cliquez sur la zone de drop ou utilisez le bouton "Prendre une photo"
- Vérifier l'extraction : L'application extrait automatiquement le LaTeX de l'image
- Résoudre : Cliquez sur "Résoudre" pour obtenir la solution complète
- Discuter : Utilisez le widget de chat flottant pour poser des questions
- Exporter : Téléchargez la solution en PDF
- Connectez votre repository GitHub à Vercel
- Configurez les variables d'environnement :
VITE_API_BASE_URL: URL de votre backend (ex:https://votre-backend.onrender.com)
- Déployez !
- Créez un nouveau Web Service sur Render
- Connectez votre repository GitHub
- Configurez :
- Build Command :
pip install -r requirements.txt - Start Command :
uvicorn main:app --host 0.0.0.0 --port $PORT
- Build Command :
- Ajoutez les variables d'environnement :
OPENAI_API_KEYWOLFRAM_APP_ID
- Mettez à jour le CORS dans
main.pyavec votre URL Vercel
Extrait le LaTeX d'une image
- Body :
FormDataavec fichier image - Response :
{ "success": true, "latex": "..." }
Résout un problème mathématique
- Body :
{ "latex": "...", "language": "fr" } - Response :
{ "success": true, "explanation": {...}, "wolfram_result": {...} }
Chat interactif sur une solution
- Body :
{ "problem": "...", "solution": {...}, "question": "...", "language": "fr", "history": [...] } - Response :
{ "success": true, "answer": "..." }
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou soumettre une pull request.
Ce projet est sous licence MIT.
Ce projet est réalisé par une équipe dédiée. Voir ASSIGNMENTS.md pour les rôles détaillés.
- Dekens (Frontend Lead)
- Israël (DB)
- Thibaut (Auth)
- Verbeck & Sarah (Onboarding)
- OpenAI pour l'API Vision et Chat
- WolframAlpha pour l'API de résolution mathématique
- La communauté open-source pour les outils utilisés
⭐ Si ce projet vous a aidé, n'hésitez pas à lui donner une étoile !