Skip to content

Zawalid/Edoctorat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


🗂️ E-Doctorat (Backend API)

The official backend API for the eDoctorat system, a production-ready application built with Spring Boot to streamline and manage the complete doctoral program lifecycle for academic institutions in Fes, Morocco.


Status Spring Java Maven MySQL JWT

📌 Table of Contents


✨ Core Features

Feature Area Description
🔐 Secure Authentication Robust, token-based authentication using JWTs and Spring Security. Includes seamless integration with Google OAuth2 for professor verification and sign-on.
👨‍🏫 Role-Based Access Control Granular permission system managing distinct roles (Candidate, Professor, Admin), ensuring users only access relevant data and functionalities.
🎓 Lifecycle Management End-to-end management of the doctoral process, from handling applications and thesis subjects (sujets) to forming commissions and tracking candidate progress.
📊 Data Management Full CRUD (Create, Read, Update, Delete) operations for all core entities, including candidates, professors, subjects, and doctoral programs.
🏛️ Structured Architecture A clean, layered architecture (Controller-Service-Repository) with DTOs and Mappers to ensure maintainability, scalability, and separation of concerns.
🔔 Notification System A built-in system to manage and send notifications to candidates regarding their application status and commission assignments.

🧰 Technology Stack

This project is built with a powerful, enterprise-grade Java backend stack.

Category Technologies & Services
Backend Framework Spring Boot Spring Boot for creating a robust, stand-alone RESTful API.
Language & Build Tool Java Java (JDK 21) as the core language, with Maven Maven for dependency management.
Authentication & Security Spring Security Spring Security for handling authentication and authorization, secured with JWTs and Google OAuth2.
Database & ORM MySQL MySQL as the relational database, interfaced with Spring Data JPA and Hibernate for object-relational mapping.
Developer Experience Lombok Lombok to reduce boilerplate code in models and DTOs, streamlining development.

🔌 API Endpoints

Click to view a summary of the API endpoints

The API provides a comprehensive set of RESTful endpoints to manage all aspects of the e-doctorate system. Below is a high-level overview grouped by resource.

Authentication

  • POST /api/login - Authenticate a user and receive a JWT.
  • POST /api/register - Register a new candidate.
  • POST /api/verify-is-prof - Verify a professor via Google OAuth.
  • POST /api/logout - Invalidate the user's session.

Sujet (Thesis Subject) Management

  • GET /api/sujetslabo - Get subjects for the current lab.
  • POST /api/sujetslabo - Create a new subject.
  • PUT /api/sujetslabo/{id} - Update an existing subject.
  • DELETE /api/sujetslabo/{id} - Delete a subject.

Application & Candidate Management

  • GET /api/get-all-candidats - Retrieve a list of all candidates who have applied.
  • GET /api/professeur-candidats - Get candidates associated with a professor's subjects.
  • PUT /api/labo_valider_examiner/{id} - Validate a candidate's examination.
  • POST /api/convoque-candidat/{id} - Send a notification to a candidate.

Commission Management

  • GET /api/commission - Get commissions for the current user's lab.
  • POST /api/commission - Create a new commission with professors and subjects.
  • DELETE /api/commission/{id} - Delete a commission.

...and many more endpoints for managing users, professors, doctoral programs, and system settings.


📨 Get In Touch

Let's connect! I'm always open to discussing new projects, creative ideas, or opportunities to be part of an amazing team.

Walid Zakan

About

The production-ready backend API for eDoctorat, a comprehensive system built with Spring Boot to manage the entire doctoral program lifecycle for academic institutions in Fes, Morocco.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages