Bienvenue sur le dépôt principal de l'organisation GitHub RailMap, un écosystème de projets open source pour révolutionner l'expérience des voyageurs en train à travers l'Europe. Ce projet a été réalisé dans le cadre du titre RNCP Concepteur Développeur d'Applications, en alternance, par Jérémie Patot.
RailMap se compose de trois modules principaux :
RailMapiOS
— Application iOS utilisateurRailMapAPI
— API backend basée sur VaporLocomoSwift
— Package Swift pour lire les flux GTFS
+------------------+ +-------------------+ +----------------+
| Utilisateur | <---> | RailMapiOS App | <---> | RailMapAPI |
+------------------+ +-------------------+ +--------+-------+
|
|
+------------v------------+
| LocomoSwift (SPM) |
| Traitement des flux |
+-------------------------+
RailMapiOS est une application iOS moderne développée en SwiftUI, permettant aux utilisateurs de consulter en temps réel les trajets ferroviaires, de recevoir des notifications de retards, et de visualiser les itinéraires sur une carte interactive.
- 🗺️ Cartographie des trajets
- 📆 Gestion des réservations
- 📱 UI intuitive et moderne
- 🔔 Notifications (GTFS-R à venir)
- ☁️ Synchronisation iCloud (CloudKit)
SwiftUI, MapKit, CoreData, CloudKit, MVVM (+MVI)
📲 Voir RailMapiOS
RailMapAPI est une API RESTful basée sur Vapor qui récupère, transforme et sert des données GTFS (format open data standard pour le transport public).
- Multi-opérateurs (SNCF, SNCB, SBB, DB, Renfe)
- Mise à jour automatique des flux
- Système de cache intelligent
- Stockage avec Fluent + SQLite
- Intégration native avec LocomoSwift
📂 Voir RailMapAPI
LocomoSwift est un package Swift open source conçu pour faciliter l’intégration et le parsing de flux GTFS .zip. Il étend le package Transit avec un focus sur la compatibilité réseau et l’intégration iOS/macOS.
✅ agency, stops, routes, trips, stop_times, calendar_dates
❌ calendar, fare_attributes, fare_rules, shapes, frequencies, transfers
https://github.com/RailMapiOS/LocomoSwift.git
📚 Voir LocomoSwift
Ce projet m’a permis de mettre en œuvre les compétences suivantes :
- Développement mobile avec SwiftUI et Combine
- Développement backend avec Swift (Vapor)
- Conception d’architectures fullstack modulaire (MVVM / MVI)
- Intégration de données open data GTFS
- CI/CD, tests, déploiement, SPM, modularisation
Les contributions sont les bienvenues ! Vous pouvez :
-
Forker un repo
-
Créer une branche (feature/ma-feature)
-
Proposer une PR ✨
RailMapiOS : Apache 2.0
RailMapAPI : MIT
LocomoSwift : MIT
Développé avec ❤️ par Jérémie Patot