No description
  • TypeScript 100%
Find a file
2026-02-26 10:41:52 +01:00
.github/ISSUE_TEMPLATE Update demande-d-ajout.md 2025-09-28 10:18:57 +02:00
app feat(demo): update demo data 2025-11-06 08:41:29 +01:00
assets fix(fonts): use font family instead of font weight 2025-06-06 18:57:48 +02:00
components feat: improve week planning + button to open meeting 2025-11-15 11:17:51 +01:00
constants feat(contact): new design for contact page 2025-04-11 14:28:04 +02:00
services feat(posts): red badge when a new post is available 2025-11-04 11:56:01 +01:00
stores feat(posts): red badge when a new post is available 2025-11-04 11:56:01 +01:00
utils fix: planning request bug + update colors 2026-02-26 10:41:52 +01:00
webAurion fix: planning request bug + update colors 2026-02-26 10:41:52 +01:00
.gitignore feat(keyboard): add keyboard dismiss mode to contact page 2025-10-09 16:40:18 +02:00
.prettierignore feat(refresh): add pull-to-refresh functionality to screens 2025-10-17 10:41:26 +02:00
.prettierrc fix: update prettier config + update missing props in ListEvent 2025-03-07 13:30:04 +01:00
app.json chore: bump version to 1.1.0 in app.json and package.json 2025-11-15 11:20:27 +01:00
eas.json feat(notifications): refactor notification settings and add club notifications support 2025-07-08 18:11:04 +02:00
google-services.json fix(config): update project details in app.json and google-services.json 2025-09-26 16:00:53 +02:00
package-lock.json fix: planning request bug + update colors 2026-02-26 10:41:52 +01:00
package.json chore: bump version to 1.1.0 in app.json and package.json 2025-11-15 11:20:27 +01:00
README.md refactor(requests): replace axios by expo fetch 2025-10-22 11:54:51 +02:00
tsconfig.json default react-native setup 2024-12-04 18:19:55 +01:00

Studysen

Studysen est un projet d'application mobile développé en React Native avec Expo et TypeScript par le club Appen. L'objectif de ce projet est de fournir une expérience mobile intuitive pour les étudiants.

📲 Télécharger l'application

Télécharger sur l'App Store
Disponible sur Google Play

🎯 Fonctionnalités

  • Authentification automatique avec compte WebAurion
  • Emploi du temps WebAurion
  • Notes WebAurion par semestre avec moyenne générale
  • Affichage du cours actuel et à venir sur la page d'accueil
  • Sauvegarde du planning et des notes en local - Mode hors ligne et connexion instantanée
  • Posts et événements des clubs pour la vie étudiante
  • Notifications rappels de cours et pour les nouveaux posts de clubs
  • Demande de nouvelles fonctionnalités et rapports de bugs directement depuis l'application

Espace Clubs (Communication)

Les responsables communication des clubs peuvent gérer leurs événements et leurs posts depuis l'espace dédié:

Note: lorsqu'un club est créé, une demande de validation nous est automatiquement envoyée pour confirmer le club avant publication.

🚀 Installation et configuration

Prérequis

  • Node.js (>= 16.x recommandé)
  • Git

Étapes d'installation

  1. Clonez le dépôt :
    git clone https://github.com/appen-isen/studysen.git
    cd studysen
    
  2. Installez les dépendances :
    npm install
    
  3. Lancez l'application :
    npm start
    
  4. Scannez le QR code avec l'application Expo Go pour tester sur un appareil physique, ou utilisez un émulateur Android/iOS configuré.

⚠️ Si vous souhaitez lancer le projet sur le réseau de l'ISEN, puisque celui-ci bloque les communications avec les ports non standards. Il faut réaliser les étapes suivantes:

  1. Utiliser un VPN pour contourner les restrictions du Wifi (exemple: ProtonVPN)
  2. Puis il faut utiliser cette commande pour lancer le projet:
    npx expo start --tunnel
    
  3. Après cela, vous pourrez scanner le QR code avec l'application Expo Go et tout devrait fonctionner.

Backend

Le backend de l'application permet de gérer la partie vie étudiante (posts, événements, etc.) et est développé en Express.js. Il est facilement déployable en utilisant Docker. Le code source du backend est disponible dans le dépôt studysen-backend

🤝 Contribution

Flux Git:

  • Branches principales:
    • main: production (version publiée sur les stores)
    • dev: intégration (développement en cours)
  • Features: partez de dev, nommez feat/ma-feature, puis Pull Request vers dev.
  • Hotfixes: partez de main, nommez hotfix/mon-correctif, puis Pull Request vers main et back-merge vers dev.

Exemples de commandes:

# Nouvelle fonctionnalité
git checkout dev
git pull
git checkout -b feat/ma-feature
# ... commits ...
git push -u origin feat/ma-feature
# Ouvrir une PR vers dev

# Correctif urgent en prod (hotfix)
git checkout main
git pull
git checkout -b hotfix/bug-critique
# ... commits ...
git push -u origin hotfix/bug-critique
# Ouvrir une PR vers main, puis merger main -> dev

🛠️ Build de l'application

Pour constuire l'application (obtenir un exécutable Android/iOS), vous pouvez utiliser la démarche suivante:

  1. Installer les service EAS

    npm install --global eas-cli
    
  2. Connectez-vous à votre compte Expo (il doit faire parti de l'organisation Appen)

    eas login
    
  3. Construire l'application

    • En mode 'preview':

      eas build --platform all --profile preview
      
    • En mode 'production':

      eas build --platform all --profile production
      
  4. Faire une mise à jour rapide (quickfix)

    eas update --channel preview --message "[message]"
    

    ou

    eas update --channel production --message "[message]"
    

🤖 Technologies utilisées

  • React Native : Framework pour le développement d'applications mobiles (Android et iOS).
  • Expo : Outils et services pour développer et déployer l'application.
  • Typescript : Typage statique pour JavaScript.
  • Express: Framework pour le backend

📚 Bibliothèques utilisées

  • Zustand : Pour la gestion des variables globales de l'application
  • WebAurion API : Pour communiquer avec WebAurion

Ressources utiles