Quick Start - AllDone API & SDK
Guide rapide pour démarrer avec l’API AllDone et son SDK TypeScript.
🚀 Démarrage rapide de l’API
1. Installation
# Cloner et installer
git clone https://github.com/wolf75222/alldoneserver
cd alldoneserver
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
2. Configuration
# Copier et éditer .env
cp .env.example .env
# Éditer JWT_SECRET, MISTRAL_API_KEY, etc.
3. Lancer l’API
# Initialiser la DB
python -c "from app.db.engine import init_db; init_db()"
# Démarrer le serveur
uvicorn app.main:app --reload --host 0.0.0.0 --port 8080
API disponible sur: http://localhost:8080 Documentation: http://localhost:8080/docs
📦 Utilisation du SDK TypeScript
Option 1: Utiliser le SDK pré-généré
Le SDK est déjà généré dans le dossier sdk/.
# Copier le dossier sdk dans votre projet
cp -r sdk/ /path/to/your/project/
# Installer axios si nécessaire
npm install axios
Option 2: Importer directement
// Dans votre projet TypeScript
import { OpenAPI, AuthService, TasksService } from './sdk';
// Configuration
OpenAPI.BASE = 'http://localhost:8080';
// Utilisation
async function main() {
// Login
const { access, user } = await AuthService.login({
email: 'user@example.com',
password: 'password123'
});
// Sauvegarder le token
OpenAPI.TOKEN = access;
console.log('Logged in as:', user.email);
// Créer un workspace
const workspace = await WorkspacesService.createWorkspace({
name: 'Mon Workspace',
key: 'MYWS'
});
// Lister les tâches
const tasks = await TasksService.listTasks({
filterProjectId: 'project_id',
filterState: 'in_progress'
});
console.log(`Found ${tasks.data.length} tasks`);
}
🔄 Régénérer le SDK (après modification de l’API)
Via npm (recommandé)
npm run generate
Via make
make sdk-typescript
Via PowerShell (Windows)
.\scripts\generate-sdk.ps1 typescript
📚 Documentation complète
| Document | Description |
|---|---|
| README.md | Documentation principale de l’API |
| sdk/README.md | Documentation complète du SDK TypeScript |
| sdk/example.ts | Exemples d’utilisation complets |
| scripts/README.md | Documentation des scripts de génération |
| SDK_SETUP_SUMMARY.md | Résumé technique de la configuration |
| COMMIT_SUMMARY.md | Résumé des modifications |
🧪 Tests
# Lancer tous les tests
pytest
# Avec coverage
pytest --cov=app --cov-report=html
# Tests d'intégration AI
pytest tests/test_ai_integration.py -v
Résultats: 137/137 tests passing (100%) ✨
🎯 Endpoints principaux
Authentification
POST /auth/login- LoginPOST /auth/refresh- Refresh tokenPOST /auth/logout- Logout
Workspaces
GET /workspaces- ListerPOST /workspaces- CréerGET /workspaces/{id}- ObtenirPATCH /workspaces/{id}- Mettre à jour
Projects
GET /projects- ListerPOST /projects- CréerGET /projects/{id}- Obtenir
Tasks
GET /tasks- Lister avec filtresPOST /tasks- CréerPATCH /tasks/{id}- Mettre à jourPOST /tasks:bulk- Créer en masse
AI (Mistral)
GET /ai/status- Status du servicePOST /ai/tasks/breakdown- Décomposer une tâchePOST /ai/tasks/suggest- SuggestionsPOST /ai/tasks/estimate- Estimation d’effort
🔐 Authentification dans le SDK
import { OpenAPI, setAccessToken, clearAccessToken } from './sdk';
import { AuthService } from './sdk';
// Login et sauvegarder le token
const { access, refresh } = await AuthService.login({
email: 'user@example.com',
password: 'password123'
});
// Option 1: Token statique
OpenAPI.TOKEN = access;
// Option 2: Token depuis localStorage (navigateur)
setAccessToken(access);
OpenAPI.TOKEN = () => localStorage.getItem('access_token') || '';
// Option 3: Token dynamique (custom)
OpenAPI.TOKEN = async () => {
// Votre logique pour récupérer le token
return getTokenFromStore();
};
// Logout
clearAccessToken();
await AuthService.logout();
🛠️ Commandes utiles
# API
uvicorn app.main:app --reload # Dev server
python -c "from app.db.seed import seed_database; seed_database()" # Seed DB
# SDK
npm run generate # Générer OpenAPI + SDK
npm run generate:openapi # Générer OpenAPI uniquement
npm run generate:sdk # Générer SDK uniquement
# Make
make schema # Générer OpenAPI
make sdk-typescript # Générer SDK TypeScript
make sdk-python # Générer SDK Python
make sdk-all # Générer tous les SDKs
# Tests
pytest # Lancer les tests
pytest --cov=app # Avec coverage
make test # Via Makefile
📊 Métriques du projet
- API Endpoints: 40
- operationIds propres: 63
- Services SDK: 13
- Types TypeScript: 50+
- Tests passing: 137/137 (100%)
- Coverage: 67%
🌟 Fonctionnalités principales
✅ API REST complète avec FastAPI ✅ Authentification JWT (access + refresh tokens) ✅ ACL granulaire (workspace + project roles) ✅ WBS (Work Breakdown Structure) ✅ Gestion de tâches (board, calendar, gantt, table views) ✅ Full-Text Search (FTS5) ✅ Mistral AI intégration (breakdown, suggestions, estimations) ✅ File management avec versioning ✅ WebSocket pour édition collaborative ✅ SDK TypeScript auto-généré avec types complets
🤝 Support
- Issues: GitHub Issues
- Email: romaindespoul@gmail.com
- Docs: http://localhost:8080/docs
| Version: 1.3.0 | License: MIT | Python: 3.11+ | FastAPI: 0.115 |