Skip to content

Repository files navigation

Thrustline

Thrustline est une application de gestion de compagnie aerienne virtuelle pour Microsoft Flight Simulator. Elle combine gestion de flotte, planification des vols, operations passives, economie et suivi en temps reel du simulateur dans une application de bureau Windows.

Le projet est en developpement actif. Il n'existe pas encore de version publique stable.

Fonctionnalites

  • Creation et gestion d'une compagnie aerienne
  • Tableau de bord avec indicateurs, historique et carte du reseau
  • Achat, vente, location et maintenance des avions
  • Marche d'avions neufs et d'occasion
  • Creation de dispatches et integration SimBrief
  • Suivi de vol en temps reel via SimConnect
  • Planification de rotations et operations passives accelerees
  • Gestion des equipages, finances, emprunts et transactions
  • Simulation de l'experience passager et bilan d'atterrissage
  • Synchronisation des donnees et authentification avec Supabase

Architecture

Microsoft Flight Simulator
          |
          v
sim-bridge (.NET 8 / SimConnect)
          |
     REST + SignalR
          |
          v
app (Tauri v2 / React / TypeScript)
          |
          v
Supabase (Auth / PostgreSQL / Realtime)

Le depot contient les composants suivants :

Dossier Description
app/ Application de bureau Tauri v2 et interface React
sim-bridge/ Sidecar ASP.NET Core reliant l'application a MSFS via SimConnect
supabase/ Configuration et migrations PostgreSQL
scripts/ Scripts PowerShell de build et d'integration
legacy/ Anciennes implementations Electron et WPF, conservees comme reference

Prerequis

Installation

1. Cloner le depot

git clone https://github.com/AndyD9/Thrustline.git
Set-Location Thrustline

2. Configurer le frontend

Set-Location app
Copy-Item .env.example .env
npm install

Renseignez ensuite les variables suivantes dans app/.env :

VITE_SUPABASE_URL=https://votre-projet.supabase.co
VITE_SUPABASE_ANON_KEY=votre-cle-anon

La cle anonyme est utilisee avec les politiques RLS. La cle service_role reste exclusivement dans les secrets des Edge Functions Supabase et n'est jamais installee sur un poste utilisateur.

3. Configurer le backend securise

Appliquez les migrations puis deployez supabase/functions/complete-flight. Le sim-bridge recoit la configuration publique et le JWT depuis l'application authentifiee; aucun secret backend ne lui est fourni. Voir supabase/SECURITY_DEPLOYMENT.md.

4. Initialiser la base de donnees

Appliquez dans l'ordre les migrations du dossier supabase/migrations/ a votre projet Supabase. Elles definissent le schema, les contraintes, les fonctions, les politiques RLS et les donnees necessaires a l'application.

5. Construire le sidecar Windows

Depuis la racine du depot :

.\scripts\build-sidecar.ps1

Le script publie le sim-bridge puis copie les fichiers requis dans le dossier des binaires externes de Tauri.

Developpement

Interface web uniquement

Set-Location app
npm run dev

Application de bureau complete

Set-Location app
npm run tauri:dev

Sim-bridge seul

Set-Location sim-bridge
dotnet run

Le bridge ecoute par defaut sur http://127.0.0.1:5055 et expose des endpoints REST locaux ainsi qu'un hub SignalR.

Validation

# Tests et build du frontend
Set-Location app
npm test
npm run build

# Build du sim-bridge
Set-Location ..\sim-bridge
dotnet build

Un build Tauri complet peut etre lance avec :

Set-Location app
npm run tauri:build

Documentation du projet

Securite

  • Ne commitez jamais de fichier .env, de cle service_role ou de secret utilisateur.
  • Le frontend utilise uniquement la cle anonyme Supabase avec RLS.
  • Le sim-bridge reste lie a l'interface locale et conserve les acces privilegies cote serveur.
  • Les binaires generes, dependances et sorties de build ne doivent pas etre ajoutes au depot.

Licence

Aucune licence open source n'est actuellement declaree. Tous droits reserves.

About

Your Airline VA companion for MSFS24

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages