Une Progressive Web App moderne et élégante pour consulter votre emploi du temps universitaire français (CELCAT, Hyperplanning, ADE Campus).
- ✨ Fonctionnalités
- 🚀 Démarrage rapide
- 📦 Installation
- ⚙️ Configuration
- 🏃 Lancement
- 📁 Structure du projet
- 🛠️ Technologies
- 📝 Utilisation
- 🤝 Contribution
- 🔒 Politique de Confidentialité & RGPD
- 📄 Licence
- 👥 Auteurs
- 📱 PWA - Installable sur mobile et desktop, fonctionne hors-ligne
- 🔄 Multi-format ICS - Compatible CELCAT, Hyperplanning, ADE Campus
- 🎨 Interface moderne - Design glassmorphism avec animations fluides
- 📅 Vues multiples - Jour, Agenda, Mois
- 🔍 Recherche - Trouvez rapidement vos cours
- ⏱️ Countdown - Compte à rebours vers le prochain cours
- 📊 Statistiques - Visualisez votre charge de travail
| Système | Labels | Groupes | Multi-profs |
|---|---|---|---|
| CELCAT | ✅ | ✅ | ✅ |
| Hyperplanning | ✅ | ✅ | ✅ |
| ADE Campus | ✅ | ✅ | ✅ |
- 🌙 Mode sombre automatique
- 👆 Gestes tactiles - Swipe pour naviguer
- 🔔 Filtres - Masquer matières/types de cours
- 📡 Calendrier secondaire - Fusionner deux EDT
- 💾 Cache hors-ligne - Accès sans internet
# Cloner et lancer en une commande
git clone https://github.com/ProGen18/calendar.git && cd calendar && npm install && npm run dev- Node.js ≥ 18.0.0
- npm ≥ 9.0.0
# 1. Cloner le repository
git clone https://github.com/ProGen18/calendar.git
# 2. Accéder au dossier
cd calendar
# 3. Installer les dépendances
npm installAucune variable d'environnement requise ! L'application stocke tout localement.
Au premier lancement, l'application demande votre URL de calendrier ICS :
- Connectez-vous à votre ENT universitaire
- Accédez à CELCAT/Hyperplanning
- Exportez votre calendrier au format ICS
- Collez le lien dans l'application
npm run dev
# Accessible sur http://localhost:5173# Build
npm run build
# Preview du build
npm run previewcalendar/
├── 📄 index.html # Point d'entrée HTML
├── 📄 package.json # Dépendances npm
├── 📄 vite.config.js # Configuration Vite + PWA
├── 📄 netlify.toml # Configuration Netlify
├── 📁 public/
│ └── 📄 favicon.svg # Icône de l'app
└── 📁 src/
├── 📄 main.jsx # Point d'entrée React
├── 📄 App.jsx # Composant principal + UI
├── 📄 calendarService.js # Parser ICS multi-format
└── 📄 index.css # Styles (glassmorphism)
| Technologie | Version | Usage |
|---|---|---|
| React | 18.3 | UI Components |
| Vite | 5.4 | Build tool |
| vite-plugin-pwa | 0.20 | Service Worker |
- date-fns - Manipulation des dates
- date-fns-tz - Gestion des fuseaux horaires
- node-ical - Parsing ICS (référence)
- CSS Variables - Theming dynamique
- Glassmorphism - Effets de verre modernes
- Inter - Police Google Fonts
# CELCAT
webcal://celcat.univ-xyz.fr/...
# Hyperplanning
https://planning.xyz.fr/hp2025/Telechargements/ical/...
# ADE Campus
https://ade.univ-xyz.fr/jsp/custom/modules/plannings/...
| Option | Description |
|---|---|
| URL ICS | Lien vers votre calendrier |
| URL Secondaire | Combiner deux emplois du temps |
| Filtres regex | Masquer cours par motif |
| Masquer dimanches | Cacher les dimanches de la navigation |
Les contributions sont les bienvenues !
- Fork le projet
- Créez votre branche (
git checkout -b feature/nouvelle-fonctionnalite) - Committez (
git commit -m 'Ajout nouvelle fonctionnalité') - Push (
git push origin feature/nouvelle-fonctionnalite) - Ouvrez une Pull Request
Distribué sous licence MIT. Voir LICENSE pour plus d'informations.
Cette application est conçue dans le respect de la vie privée ("Privacy by Design").
Aucune donnée personnelle n'est collectée, trackée ou vendue. L'application fonctionne selon le principe du "Local-First" :
- Vos préférences (thème, filtres) sont stockées dans le
localStoragede votre navigateur. - Vos données de calendrier sont mises en cache localement pour permettre le mode hors-ligne.
- Calendriers : L'application récupère votre emploi du temps via des requêtes directes ou via des proxys CORS publics (AllOrigins) si nécessaire. Ces proxys ne font que relayer la requête sans stocker les données.
- Analytics : Aucun tracker publicitaire ou d'analyse comportementale (Google Analytics, etc.) n'est intégré.
Stéphane Talab - Créateur - stephane-talab.fr
| Problème | Solution |
|---|---|
| CORS bloqué | L'app utilise des proxies automatiques |
| Cache obsolète | Rafraîchir via le menu "..." |
| Dates décalées | Vérifiez le fuseau horaire de l'ICS |
Fait avec ❤️ pour les étudiants et les professeurs français
