Skip to content

SteveSIAKE/faculty_Management

Repository files navigation

Laravel Logo

Build Status Total Downloads Latest Stable Version License

About Laravel

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:

Laravel is accessible, powerful, and provides tools required for large, robust applications.

Learning Laravel

Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.

You may also try the Laravel Bootcamp, where you will be guided through building a modern Laravel application from scratch.

If you don't feel like reading, Laracasts can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.

Laravel Sponsors

We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel Partners program.

Premium Partners

Contributing

Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.

Code of Conduct

In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.

Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via taylor@laravel.com. All security vulnerabilities will be promptly addressed.

License

The Laravel framework is open-sourced software licensed under the MIT license.

Cahier des Charges - Application Web de Gestion de Faculté*** L'application web de gestion de faculté est une plateforme numérique destinée à moderniser et centraliser la gestion administrative et pédagogique d'un établissement d'enseignement supérieur. Elle vise à remplacer les processus manuels etles systèmes disparates par une solution intégrée, sécurisée et accessible.

****Problématique Actuelle et Enjeux Problématique actuelle Gestion dispersée des données administratives et pédagogiques Processus manuels chronophages et source d'erreurs Manque de visibilité en temps réel sur les performanceset statistiques Communication fragmentée entre les différents acteurs Absence d'historique centralisé et de traçabilité Enjeux et bénéfices attendus Efficacité opérationnelle : Automatisation des tâchesrépétitives Centralisation des données : Vision globale etcohérente de l'établissement Amélioration de la communication : Fluidification des échanges entre acteurs Traçabilité : Historique complet des actions et décisions Accessibilité : Interface moderne et responsive accessible 24h/24

Objectifs du Projet Objectifs fonctionnels Centraliser et sécuriser toutes les données administratives et pédagogiques. Automatiser les processus de gestion des utilisateurs, cours, notes et présences. Fournir des tableaux de bord et rapports en temps réel. Faciliter la communication entre administrateurs, professeurs et étudiants. Assurer la traçabilité complète des actions utilisateurs. Objectifs techniques Développer une architecture moderne et scalable. Garantir la sécurité des données et des accès. Assurer des performances optimales même avec une charge élevée. Fournir une interface utilisateur intuitive et responsive. Permettre l'intégration future avec d'autres systèmes. Objectifs de qualité Disponibilité de 99.5% minimum. Temps de réponse inférieur à 2 secondes pour les opérations courantes. Interface accessible selon les standards WCAG 2.1. Sécurité conforme aux normes RGPD

Périmètre du Projet Inclus dans le projet Gestion complète des utilisateurs (administrateurs, professeurs, étudiants) Gestion des cours, modules et programmes Système de notes et évaluations Gestion des présences et absences Calendrier académique intégré Système de communication interne Génération de rapports et statistiques Interface d'administration complète Exclus du projet (Phase 2) Intégration avec systèmes externes (comptabilité, RH) Module de facturation et paiement Application mobile native Système de visioconférence intégré Gestion des ressources matérielles (salles, équipements) Analyse des Besoins par Profil Utilisateur L'application est conçue pour répondre aux besoins spécifiques de chaque type d'utilisateur, garantissant une expérience personnalisée et efficace. Besoins Administrateur Gestion des utilisateurs: Créer, modifier, supprimer des comptes, attribuer rôles, consulter historique. Gestion académique: Organiser programmes, affecter cours, gérer calendriers, configurer évaluations. Suivi et reporting: Générer rapports de performance, consulter statistiques, analyser résultats, exporter données. Besoins Professeur Gestion des cours: Accéder à la liste de ses cours, partager ressources, planifier séances et examens, gérer groupes. Évaluation et suivi: Saisir notes, gérer présences, suivre progression, générer bulletins. Communication: Envoyer messages, publier annonces, programmer rendez-vous, recevoir notifications. Besoins Étudiant Suivi académique: Consulter notes, visualiser emploi du temps, accéder ressources, télécharger bulletins. Communication: Recevoir annonces, contacter enseignants, accéder informations administratives, consulter calendrier. Gestion personnelle: Mettre à jour informations, consulter dossier académique, suivre progression, accéder historique notes. Spécifications Techniques L'architecture système est conçue pour être robuste et performante, utilisant des technologies modernes pour assurer une expérience utilisateur fluide et sécurisée. Architecture générale Frontend (SPA) API REST Backend Laravel Base de données MySQL Composants techniques Frontend : Single Page Application (SPA) API : RESTful avec authentification JWT Backend : Laravel 12 avec architecture MVC Base de données : MySQL 8.0+ avec InnoDB Cache : Redis pour les sessions et cache applicatif Technologies Utilisées Frontend : HTML5, TailwindCSS, JavaScript ES6+, Fetch API Backend : Laravel 12, Laravel Sanctum, Eloquent ORM, Laravel Validation Base de données : MySQL 8.0+, Migrations Laravel, Indexes optimisés Sécurité Authentification et autorisation : JWT Tokens, RBAC, Middleware, Rate Limiting Protection des données : Chiffrement HTTPS, Validation, CSRF Protection, XSS Protection Tests et Qualité Une stratégie de tests rigoureuse est mise en place pour garantir la fiabilité, la performance et la sécurité de l'application. Stratégie de Tests Tests unitaires : Couverture minimum 80% du code backend, tests des modèles, logique métier, API endpoints, validations. Tests d'intégration : Tests des flux utilisateur complets, API avec base de données, permissions et sécurité, performance. Tests utilisateur : Tests d'acceptation avec les parties prenantes, ergonomie et accessibilité, différents navigateurs et appareils, charge et performance. Critères de Qualité Performance : Temps de réponse < 2 secondes pour 95% des requêtes, chargement initial < 3 secondes, support de 100 utilisateurs concurrents minimum, optimisation des requêtes base de données. Sécurité : Audit de sécurité complet, tests de pénétration, conformité RGPD, chiffrement des données sensibles. Conclusion et Planification Ce cahier des charges définit les bases d'une application web moderne et complète pour la gestion de faculté. Le projet s'articule autour de trois piliers : efficacité opérationnelle, sécurité des données, et expérience utilisateur optimale. ******Phases du ****** Phase 1 : 1 Analyse et Conception (2 semaines) Livrables : Cahier des charges validé, Maquettes UI/UX, Architecture technique détaillée, Modèle finalisé. 2 Phase 2 : Développement Backend (4 semaines) Livrables : API REST complète, Base de données avec données de test, Tests unitaires et d'intégration, Documentation API. Phase 3 : 3 Développem ent Frontend (3 semaines) Livrables :Interface utilisateur complète, Intégration avec l'API, Tests d'interface, Guide utilisateur. 4 Phase 4 : Tests et Déploiement (2 semaines) Livrables : Tests d'acceptation validés, Application déployée en production, Formation des utilisateurs, Documentation technique.

Documentation de l'API - Système de Gestion des Facultés

Authentification

Login

POST /api/login

Body:

{
    "email": "string",
    "password": "string"
}

Register

POST /api/register

Body:

{
    "name": "string",
    "email": "string",
    "password": "string",
    "password_confirmation": "string",
    "role_id": "integer"
}

Logout

POST /api/logout

Nécessite un token d'authentification

Utilisateurs

Liste des utilisateurs

GET /api/users

Paramètres de requête:

  • search: Recherche par nom ou email
  • role_id: Filtrer par rôle
  • department_id: Filtrer par département

Créer un utilisateur

POST /api/users

Body:

{
    "name": "string",
    "email": "string",
    "password": "string",
    "role_id": "integer",
    "department_id": "integer"
}

Créer plusieurs utilisateurs

POST /api/users/bulk

Body:

{
    "users": [
        {
            "name": "string",
            "email": "string",
            "password": "string",
            "role_id": "integer",
            "department_id": "integer"
        }
    ]
}

Cours

Liste des cours

GET /api/courses

Paramètres de requête:

  • search: Recherche par titre ou description
  • department_id: Filtrer par département
  • teacher_id: Filtrer par enseignant
  • academic_year_id: Filtrer par année académique

Créer un cours

POST /api/courses

Body:

{
    "title": "string",
    "description": "string",
    "department_id": "integer",
    "teacher_id": "integer",
    "academic_year_id": "integer",
    "credits": "integer",
    "max_students": "integer"
}

Inscriptions

Liste des inscriptions

GET /api/enrollments

Paramètres de requête:

  • student_id: Filtrer par étudiant
  • course_id: Filtrer par cours
  • status: Filtrer par statut (pending, approved, rejected)

Créer une inscription

POST /api/enrollments

Body:

{
    "student_id": "integer",
    "course_id": "integer"
}

Approuver une inscription

POST /api/enrollments/{id}/approve

Rejeter une inscription

POST /api/enrollments/{id}/reject

Présences

Liste des présences

GET /api/attendance

Paramètres de requête:

  • student_id: Filtrer par étudiant
  • course_id: Filtrer par cours
  • date: Filtrer par date
  • status: Filtrer par statut (present, absent, late)

Créer une présence

POST /api/attendance

Body:

{
    "student_id": "integer",
    "course_id": "integer",
    "date": "date",
    "status": "string"
}

Créer plusieurs présences

POST /api/attendance/bulk

Body:

{
    "course_id": "integer",
    "date": "date",
    "attendance": [
        {
            "student_id": "integer",
            "status": "string"
        }
    ]
}

Notes

Liste des notes

GET /api/grades

Paramètres de requête:

  • student_id: Filtrer par étudiant
  • course_id: Filtrer par cours
  • type: Filtrer par type (exam, assignment, quiz, project)
  • min_grade: Note minimale
  • max_grade: Note maximale

Créer une note

POST /api/grades

Body:

{
    "student_id": "integer",
    "course_id": "integer",
    "type": "string",
    "grade": "numeric",
    "comments": "string"
}

Créer plusieurs notes

POST /api/grades/bulk

Body:

{
    "course_id": "integer",
    "type": "string",
    "grades": [
        {
            "student_id": "integer",
            "grade": "numeric",
            "comments": "string"
        }
    ]
}

Ressources

Liste des ressources

GET /api/resources

Paramètres de requête:

  • course_id: Filtrer par cours
  • type: Filtrer par type (document, presentation, video, link)
  • search: Recherche par titre ou description

Créer une ressource

POST /api/resources

Body:

{
    "course_id": "integer",
    "title": "string",
    "description": "string",
    "type": "string",
    "file": "file",
    "url": "string"
}

Télécharger une ressource

GET /api/resources/{id}/download

Notifications

Liste des notifications

GET /api/notifications

Paramètres de requête:

  • user_id: Filtrer par utilisateur
  • type: Filtrer par type (info, warning, success, error)
  • is_read: Filtrer par statut de lecture

Créer une notification

POST /api/notifications

Body:

{
    "user_id": "integer",
    "title": "string",
    "message": "string",
    "type": "string",
    "link": "string"
}

Marquer comme lu

POST /api/notifications/{id}/read

Marquer comme non lu

POST /api/notifications/{id}/unread

Tout marquer comme lu

POST /api/notifications/read-all

Années Académiques

Liste des années académiques

GET /api/academic-years

Paramètres de requête:

  • search: Recherche par nom ou description
  • is_active: Filtrer par statut actif

Créer une année académique

POST /api/academic-years

Body:

{
    "name": "string",
    "description": "string",
    "start_date": "date",
    "end_date": "date",
    "is_active": "boolean"
}

Définir comme année active

POST /api/academic-years/{id}/set-active

Codes de réponse

  • 200 : Succès
  • 201 : Création réussie
  • 400 : Requête invalide
  • 401 : Non authentifié
  • 403 : Non autorisé
  • 404 : Ressource non trouvée
  • 422 : Erreur de validation
  • 500 : Erreur serveur

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages