Project overview
- Développement d'une bibliothèque backend réutilisable en .NET fournissant un hub SignalR et la logique de gestion de la présence, packagée en SDK réutilisable.
- Architecture Self-Hosted SignalR : utilisation du SDK SignalR natif .NET hébergé dans l'infrastructure de l'application pour supprimer la dépendance à Azure SignalR Service.
- Authentification et sécurité : utilisation de tokens JWT pour identifier et authentifier les utilisateurs participant au suivi de présence.
- Conception orientée extensibilité pour supporter des fonctionnalités futures (indicateurs d'édition, rôles utilisateurs, analytics).
Responsabilités et tâches techniques
- Implémenter le hub SignalR et la logique de présence (connexion/déconnexion, gestion d'états, reconnections) en code robuste et testable.
- Intégrer l'authentification JWT directement dans le pipeline SignalR pour sécuriser les canaux de présence.
- Packager la solution en tant que SDK .NET réutilisable avec documentation d'API et exemples d'intégration.
- Assurer l'hébergement self-hosted de SignalR, écrire des tests d'intégration et fournir des guides de migration depuis Azure SignalR Service si nécessaire.
Compétences requises / connaissances
- Maîtrise du développement .NET et expérience avec ASP.NET Core et SignalR.
- Connaissance des mécanismes d'authentification JWT et des bonnes pratiques de sécurité pour les communications temps réel.
- Connaissances pratiques d'Azure et d'Angular sont un plus pour l'intégration front/back et le déploiement, ainsi que l'expérience de packaging de bibliothèques/SDKs.
- Bonnes pratiques de tests (unitaires et d'intégration), documentation technique et structuration de code pour réutilisation.
Détails du stage et livrables attendus
- Nombre de stagiaires : 01.
- Durée : Entre 4 to 6 Months.
- Livrables : SDK .NET réutilisable (nuget ou package), documentation d'intégration, exemples d'utilisation (backend + front), suite de tests et guides de déploiement self-hosted.
- Activités complémentaires : revues de code, sessions de design et présentation finale du projet.