Skip to the content.

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

Workspaces

Projects

Tasks

AI (Mistral)

🔐 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

🌟 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


Version: 1.3.0 License: MIT Python: 3.11+ FastAPI: 0.115