diff --git a/projects/projects_2023-24/Report_Badr-Eddine_Aji.md b/projects/projects_2023-24/Report_Badr-Eddine_Aji.md new file mode 100644 index 0000000000000000000000000000000000000000..7412f9bb385ee69a076ce3f454b8e68c215c3f8b --- /dev/null +++ b/projects/projects_2023-24/Report_Badr-Eddine_Aji.md @@ -0,0 +1,37 @@ +## Key Information + +| Author | Badr-Eddine Aji | +|---------------------|--------------------------------------------------------------------------------------------------------------------------------| +| NOMA | 88991600 | +| Academic Year | 2023–2024 | +| GitHub username | badreddine2 | +| Commit email address | badreddine.aji@gmail.com | +| Project | [ADE-Scheduler](https://github.com/ADE-Scheduler/ADE-Scheduler) | +| License | MIT | +| Pull request | [PR #1052](https://github.com/ADE-Scheduler/ADE-Scheduler/pull/1052) | + + +# ADE-Scheduler Contribution + +## Project Overview +ADE-Scheduler is a web application created by former students specifically for UCLouvain members. It provides enhanced features and a more attractive design compared to the official ADE system. + +## Contribution Story + +### Getting Started +I began my contribution by cloning the ADE-Scheduler project repository onto my local machine. The project came with a Docker folder, including a ` Dockerfile` and an entrypoint script. These components are intended to containerize the application, making it easier for both users and contributors to set up their environments. + +### Facing Challenges +During the process of building the Docker image, I encountered several issues. The first challenge was CentOS mirror errors, which caused the build to fail. This indicated that the Docker setup was not as straightforward as anticipated. Additionally, I noticed that the ` Dockerfile` was not copying the application repository to the working directory correctly, which led to problems with the entrypoint script. Moreover, the build process was missing the `dev-requirements.txt` file, a crucial element for installing the necessary Python modules. + +### Taking Action +To address these challenges, I took a series of steps. I started by creating an issue on GitHub to report the problems and seek guidance on how to proceed. This was the initial step in officially documenting and communicating the issues I faced. I then worked on the ` Dockerfile`, making necessary adjustments to fix the CentOS mirror errors and correcting the process for copying the application repository. Additionally, I created and added the `dev-requirements.txt` file to include all required modules and their compatible versions. I also tackled authentication issues by adding mechanisms that bypassed the need for credentials and included a fake_api folder to help with this. + +### Feedback and Further Improvements +After submitting a pull request with my initial fixes, I received feedback suggesting a shift from using `dev-requirements.txt` to Poetry for dependency management. The project owners recommended this change to avoid manual updates for modules. In response, I installed Poetry in the ` Dockerfile`, which required further modifications to the Docker setup. I also decided to switch from CentOS 7 to Rocky Linux, as CentOS 7 is deprecated. This change provided a more current and stable base for the application. I updated the ` Dockerfile` to integrate Poetry, removing the `dev-requirements.txt` file and reconfiguring the setup accordingly. Finally, I updated the project documentation to reflect these changes, ensuring that future contributors would have clear instructions on the new ` Dockerfile` and entrypoint script. + +### Results and Impact +The improvements led to a successful build of the Docker image and smooth operation of the container. The adoption of Poetry streamlined dependency management, and the switch to Rocky Linux provided a more secure and up-to-date base image. These changes have made it easier for future developers to build and run the container, significantly reducing setup time and ongoing maintenance. + +### Conclusion +By addressing the Docker setup issues and implementing the suggested improvements, I contributed to make ADE-Scheduler project containerized. Now that the application is containerized, it can be deployed to the cloud or hosted in a Kubernetes cluster which will ensures the high availability and scalability of ADE-Scheduler.