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

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages