diff --git a/projects%2Fprojects_2024-25/Report_Nicolas-Dedoyard-19772301.md b/projects%2Fprojects_2024-25/Report_Nicolas-Dedoyard-19772301.md new file mode 100644 index 0000000000000000000000000000000000000000..474956949aa4196a375e34b8bc73e6ba2b42c51d --- /dev/null +++ b/projects%2Fprojects_2024-25/Report_Nicolas-Dedoyard-19772301.md @@ -0,0 +1,24 @@ +# **LINFO2401 project report - Contributing to an Open Source project** +| **Author:** | _Nicolas Dedoyard_ | +| ------------------------ | ---------------------------------------- | +| **NOMA:** | 19772301 | +| **Academic Year:** | 2024-2025 | +| **Open Source Projects:** | Godot (https://github.com/godotengine/godot) | +| **Pull requests made:** | https://hosted.weblate.org/changes/browse/godot-engine/-/nl/?user=NicolasDed&period= | +| **License** | MIT License | + + +## Project search and contribution +I had a lot of trouble finding an open-source project I used and could contribute to. Sadly, I did not find any, so I started asking friends if they had ideas of such projects they personnaly used. And then some friend of mine proposed Godot, which he had already used in the past and really liked. I knew from the name what it was but did not know exactly for what it was used. I made some researches and found out that this project is enormous and used by a lot of people. Godot is also super complete with a lot of documentation and easy ways to contribute. + +As I studied in Dutch during my primary and secundary years, I decided to make this advantage useful. That is why I decided to add translations in Dutch because Godot is completely translated in English, Irish and Ukrainian, but only 10% (when I write this) in Dutch. + +Translations are not merged into the main repository, so no real pull request is made when accomplishing translations. That is why I added a specific link to check my contributions in Dutch only. + +## Project information +Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unified interface. It provides a comprehensive set of common tools, so that users can focus on making games without having to reinvent the wheel. Games can be exported with one click to a number of platforms, including the major desktop platforms (Linux, macOS, Windows), mobile platforms (Android, iOS), as well as Web-based platforms and consoles. It has been open to the public since January 2014 under MIT License. + +The repository in itself is huge with almost 70000 commits and over 20000 forks (when I write this). They have a lot of different websites for multiple tasks. For example, here is the website I used to contribute to the languages (https://hosted.weblate.org/projects/godot-engine/#languages). + +## Conclusion +At first I did not know how to contribute to an open-source project. I thought it was a hard and challenging task, but now that I have done one I'm better informed of how open-source works. Despite the initial challenge of finding a suitable project, I'm happy I could use my Dutch skills to contribute to Godot. It is a small step towards enhancing the usability of Godot for Dutch-speaking users. diff --git a/Report-Aloys-Nizeyimana-255620000.md b/projects/projects_2024-25/Report-Aloys-Nizeyimana-255620000.md similarity index 100% rename from Report-Aloys-Nizeyimana-255620000.md rename to projects/projects_2024-25/Report-Aloys-Nizeyimana-255620000.md diff --git a/projects/projects_2024-25/Report-Benita-Tia-18821600.md b/projects/projects_2024-25/Report-Benita-Tia-18821600.md new file mode 100644 index 0000000000000000000000000000000000000000..90d7403f578a02b53bf200d9c54e03b4582dd675 --- /dev/null +++ b/projects/projects_2024-25/Report-Benita-Tia-18821600.md @@ -0,0 +1,81 @@ +# **LINFO2401 project report - Contributing to an Open Source project : If Me ** +| **Author** | Benita Tia | +| ----------------------- | -----------------------------------------------------------------------------------------------| +| **Date** | 01/12/2024 | +| **NOMA** | 18821600 | +| **Academic Year** | 2024-2025 | +| **Open Source Project** | [If-me](https://github.com/ifmeorg/ifme) | +| **Pull request made** | / | +| **License** | [AGPL License 3.0](https://github.com/ifmeorg/ifme) + + + +## Introduction +Finding an interesting open-source project was not an easy task. After extensive research, I came across [If Me](https://if-me.org), a project available on the **Up For Grabs** platform. This project immediately caught my attention as it addresses mental health, a topic that deeply interests me. If Me is a community that encourages sharing personal mental health experiences with trusted allies: friends, family, coworkers, teachers, or mental health professionals. + +The project not only aligns with my interests but is also marked as **beginner friendly**. Therefore, I decided to dive in. + +--- + +## Project Selection +The first step was to explore their [GitHub repository](https://github.com/if-me/ifme). In the `CONTRIBUTING` section, I discovered several ways to contribute: **designer**, **developer**, **writer**, or **user tester**. They even mentioned being open to creating new roles for interested contributors. + +Initially, I wanted to contribute as a translator to provide a French version of the site, but I found out that someone had already done this. Undeterred, I explored their website, signed up, and decided to write an article for their blog. This aligned well with my skills and habits since I’m already used to blogging on my own site. + +--- + +## Community Engagement +Contributing to an open-source project requires following specific steps. At If Me, the process is straightforward: +1. **Send an email** to their address ([join.ifme@gmail.com](mailto:join.ifme@gmail.com)) explaining why and how you want to contribute. +2. If the proposal is accepted, the contributor is added to their Slack workspace and receives an invitation to join their GitHub repository. + +I followed this procedure and, fortunately, I was accepted into their Slack workspace. Once integrated, I joined their `#blog` channel, where discussions specific to writing take place. + +--- + +## Understanding the Contribution Process +The contribution process at If Me is structured and clear. For the **blog writing** part, here are the steps to follow: +- **Drafting and collaboration on Google Docs**: + - Write the article on Google Docs and grant editing permissions to the team. + - Thoroughly proofread the draft using tools like Grammarly. +- **Share the draft on Slack**: + - Post a link to the draft in the `#blog` channel to receive feedback. +- **Publish on Medium**: + - Create a Medium account. + - Copy and paste the article into Medium, save it as a draft, and inform the editor (@julia on Slack). + +I learned that the key to a successful contribution lies in effective communication and constructive feedback before submitting a final proposal. + +--- + +## Understanding the Project +**If Me** is a platform built on strong human values: +- Encouraging discussions about mental health. +- Involving trusted allies in the healing process. + +Some technical and organizational details: +- **License**: The source code is licensed under GNU AGPLv3. +- **Sponsors**: If Me is supported by sponsors like Triplebyte and The Tides Foundation and also accepts financial contributions via [Open Collective](https://opencollective.com/if-me). +- **Financial structure**: Transparency is essential. Any expense submitted by a contributor must be validated by core contributors. + +The live site can be accessed at [if-me.org](https://if-me.org), and the project is actively maintained thanks to a motivated and well-organized team. + +--- + +## My Opinion on the Project +I find this project not only interesting but also incredibly necessary. It can provide real support to people suffering from severe depression or anxiety by enabling them to connect with their allies easily. As an accessible and human-centered tool, If Me can become a valuable companion in its users’ daily lives. + +However, I do not plan to contribute to this project further. While this experience was enriching, I now prefer to invest my time in other initiatives. Nevertheless, I am proud to have discovered and supported this project, even in a small way. + +--- + +## Conclusion +This experience allowed me to understand the importance of having a clear structure in an open-source project and the value of honest and collaborative communication. I also appreciated the If Me community's commitment to its contributors and users. + +I leave with a better understanding of open-source contribution dynamics and a deep admiration for projects that aim to improve people’s lives. + +--- + +## Book +The book is Pack Up the Moon by Kristan Higgins +--- diff --git a/projects/projects_2024-25/Report-Chris-Bakashika-79601800.md b/projects/projects_2024-25/Report-Chris-Bakashika-79601800.md new file mode 100644 index 0000000000000000000000000000000000000000..83db822b2277a8bc7fd1a07f8eaed17fa38b59aa --- /dev/null +++ b/projects/projects_2024-25/Report-Chris-Bakashika-79601800.md @@ -0,0 +1,65 @@ +# **LINFO2401 project report - Contributing to an Open Source project** + +| **Author** | Chris Bakashika | +| ----------------------- | -----------------------------------------------------------------------------------------------| +| **Date** | 30/11/2024 | +| **NOMA** | 7960-1800 | +| **Academic Year** | 2024-2025 | +| **Open Source Project** | [PythonBrokenEnglish](https://github.com/PythonEducationVid/PythonBrokenEnglish) | +| **Pull request made** | [Python command-line argument video (sys.argv) #141 #143](https://github.com/PythonEducationVid/PythonBrokenEnglish/pull/143) | +| **License** | [MIT License](https://github.com/PythonEducationVid/PythonBrokenEnglish/blob/main/LICENSE) | + +## Project: PythonBrokenEnglish + +PythonBrokenEnglish is a Python Language Learning Project. The idea of this project is to enhance language learning through various multimedia resources. The project is designed not only to assist learners in understanding and speaking English, particularly for non-native speakers, but also to provide video tutorials in their native languages to learn coding in Python. + +The project provides audio materials, example scripts, and instructional videos, it aims to facilitate language acquisition in an engaging and effective manner. +The Python Language Learning Project is designed to provide learners with resources that cater to different languages, including Hausa(Chad), Igbo(Nigeria), Yoruba(West Africa), and English. This project offers: + +- Audio Resources: Designed for practicing English and native languages. +- Tutorial Scripts: Practical scripts to help learners engage with the language in both English and their native tongue. +- Instructional Videos: Visual content that explains concepts in users' native languages, making learning more accessible. + +It currently has 2 stars, 10 forks, 136 active issues and 0 closed for the moment. There are 6 contributors in the project (including me). +The owner and maintainer of this project is Ntem Kenyor, I joined him through is mail address and He is pretty much accessible, so It's easy to get in touch with him quickly. I thing that can be explained by the fact that for the moment there aren't many contributors to the project so it's easy for him to handle the conversation quickly, This kind of small projects are pretty well adapted for first contributions. + +I haven't seen any disucssion forum or anything like that. For the moment I've observed that the only convnersations between users and/or contributors happen in issues or PR. + +To talk about the License, the project is under **MIT License**, a permissive open-source license that allows users to freely use, modify, and distribute the software, even for commercial purposes, as long as the original copyright notice and license terms are included in any copies or substantial portions of the software. + +It's my first Contribution to PythonBrokenEnglish, I discovered this project by diging into GitHub Open Source Project were Python is used. + +## Contribution + +The project just need a Python installation on your machine and an IDE to run sample of code in the videos. It also has a `CONTRIBUTING.md` file which helped me pretty well to know how I can start the process of contribution to the project. + +When I understood, how the project was built, I first dig into the issues to see what's going on. I've found that in fact in this project the majority of issues are written by the owner and maintainer, Ntem Kenyor. In this issues, He clearly describes what kind of videos he wants to be made, the subject which it talks about which is a Python functionality, and He provides the script python that needs to be explained in the video. +By doing so, You just have to know Python programmation and to be able to transmit the explanation of the script to the viewers in a video. + +The contribution took me one week to be done because eveything was pretty well explained and I understood pretty well how to interact with the community. Because I messed up a contribution on **Bokeh**(https://github.com/bokeh/bokeh) project which I was trying to build since 3 weeks. I started very bad by posting huge piece of code, unrelated subject connection and I thing that It was a big mistake beacause one of the owner just stopped to answer me. +I didn't wanted to make the same error in this BrokenEnglishProject. + +When I found an interesting issue which I was able to solve, I recorded the video in good quality in an instructional way to explain the piece of Python script that the issue was talking about. +Then I have made a PR explaining that I have made a video and in my PR I referenced the orginal issue so that the owner can directly know to what It's related. +The same day I've sent an email to the owner of the project, to introduce myself and to explained that I really liked is project and I contributed with a pull request. +He answered me just one day after that He is gonna look at this and thanked me for my interest. +2-days without any response, I sent a new mail to say that there is no problem if I have to make any change to my PR. + +Magically, My PR was accepted(The same day) and He merged that to the main project, it was my first contribution to an Open Source Project on GitHub. + + + +## Journal + +It wasn't easy at all to find an Open-source project to which I can contribute easily for a first contribution. + +When I found an interesting project named Bokeh (https://github.com/bokeh/bokeh), an Open-Source project which provides a library for vizualition of plots with Python scripts, pretty much similar to Matlplotlib, Plotly, I was happy. +But my unexperience made that I've done some communication mistakes as explained earlier and I didn't had any response after more than 3 weeks of trying contributing. +I think my biggest mistake was to thing that because I know how to code and I'm in last year of Master Degree in UCLouvain I had some legimity to show my coding skills and my knowledge. But It was pretty straightforward that people don't care from who you are or what's your formation. +They just want peoples who have a real interest for the project, and which respect the rules of the communication in the project(which shows the real interest for the project) and I haven't made that with Bokeh, but It was a learning and I'm sure that It will be useful to me in the next of my carrier because I know what I must not do. + +My final idea was to add a feature to PythonBrokenEnglish. The process was described in sections above. + +## Conclusion + +Contributing to an Open-Source project was a great experience. I learned a lot of things, really. I think that this first contribution to an Open-Source project provides me with some experience with the real world of projects. For me It was a real pleasure when the PR was accepted and merged because It was so difficult the experience that I had with Bokeh that It shows me that by taking my time and by doing thinks in the right way, I can do it. So thank you. diff --git a/projects/projects_2024-25/Report-Elliot-Verstraelen-25271700.md b/projects/projects_2024-25/Report-Elliot-Verstraelen-25271700.md new file mode 100644 index 0000000000000000000000000000000000000000..0cbdf9d42c515f0e465f28e3da96df78d0b37519 --- /dev/null +++ b/projects/projects_2024-25/Report-Elliot-Verstraelen-25271700.md @@ -0,0 +1,58 @@ +# **LINFO2401 project report - Contributing to an Open Source project** + +| **Author** | Elliot Verstraelen | +| ----------------------- | ---------------------------------------------------------------------------- | +| **Date** | 27/11/2024 | +| **NOMA** | 2527-17-00 | +| **Academic Year** | 2024-2025 | +| **Open Source Project** | [DocsGPT](https://github.com/arc53/DocsGPT) | +| **Pull request made** | [Fix: Accessibility improvements (Pa11y fixes)](https://github.com/arc53/DocsGPT/pull/1460) | +| **License** | [Apache License 2.0](https://github.com/arc53/DocsGPT/blob/main/LICENSE) | + +## Context + +This report details my contribution to the open-source project **DocsGPT**, an AI-powered assistant that simplifies navigating documentation. This project stood out to me due to its focus on improving user accessibility, which aligns with the course's theme. + +The contribution involved fixing accessibility issues flagged by [Pa11y](https://github.com/pa11y/pa11y), a tool used to identify compliance with web accessibility standards. These issues were described in [issue #1305](https://github.com/arc53/DocsGPT/issues/1305), which aimed to make DocsGPT more accessible to all users. + +## Choice of Project + +I selected DocsGPT because it combines frontend development with accessibility, an area I wanted to explore. It uses modern web technologies such as React, TypeScript, and Tailwind CSS. The repository also had clear contribution guidelines, which made it easier to set up the project locally. + +DocsGPT is actively maintained and has a strong community of contributors. This was essential for ensuring that my contribution would be reviewed and merged. + +## Contributions + +The accessibility issues I addressed included missing labels for form elements and missing `alt` attributes for images. These problems can make navigating the app challenging for users relying on assistive technologies. + +### Summary of Fixes: +1. **Added Labels for Input and Textarea Fields:** + - Ensured that the API key input field and the message input textarea were labeled correctly to comply with [WCAG guidelines](https://www.w3.org/WAI/standards-guidelines/wcag/). + - Used visually hidden labels (`sr-only`) [read here](https://tailwindcss.com/docs/screen-readers) to avoid disrupting the UI while making the application accessible to screen readers. + +2. **Added `alt` Attributes to Images:** + - Fixed missing `alt` attributes for icons such as the send button and the upload icon, providing meaningful descriptions for their purpose. + +### Testing and Validation: +After making the changes, I validated the fixes using Pa11y against the local instance of the application (`http://localhost:5173`). All reported accessibility issues were resolved. + +### Pull Request: +I created a [pull request](https://github.com/arc53/DocsGPT/pull/1305) to merge the changes into the main branch. The contribution is currently under review by the project maintainers. + +## Contribution Process + +Setting up the project locally was straightforward, thanks to the detailed instructions in the repository. However, I faced challenges understanding the project structure initially. This required some time to navigate and locate the relevant files. + +After identifying the issues, I made the necessary fixes and tested them thoroughly. The project uses Tailwind CSS, which made styling adjustments for visually hidden labels easier. + +## Conclusion + +Contributing to DocsGPT was a rewarding experience. It gave me practical insights into: +- Web accessibility and tools like Pa11y. +- Collaborating in an open-source environment. +- The importance of clear documentation for onboarding new contributors. + +This contribution is relatively small compared to those in larger projects, but accessibility fixes can significantly improve the user experience. I believe it adds value to DocsGPT by making the platform more inclusive. + +--- + diff --git a/projects/projects_2024-25/Report-Kilian-Ury-12291800.md b/projects/projects_2024-25/Report-Kilian-Ury-12291800.md new file mode 100644 index 0000000000000000000000000000000000000000..bf88d390d67d4564413d300809c18b47a1f21206 --- /dev/null +++ b/projects/projects_2024-25/Report-Kilian-Ury-12291800.md @@ -0,0 +1,107 @@ +# **LINFO2401 project report - Contributing to an Open Source project: Opsdroid** + +| **Author** | Kilian Ury | +| ----------------------- | -----------------------------------------------------------------------------------------------| +| **Date** | 01/12/2024 | +| **NOMA** | 12291800 | +| **Academic Year** | 2024-2025 | +| **Open Source Project** | [opsdroid](https://github.com/opsdroid/opsdroid) | +| **Pull request made** | [Update French translations in opsdroid.po](https://github.com/opsdroid/opsdroid/pull/2047) | +| **License** | [Apache License 2.0](https://github.com/opsdroid/opsdroid/blob/main/LICENSE) | + +## Project: Opsdroid + +Opsdroid is an open-source chatbot framework written in Python that allows developers to create, deploy, and manage conversational bots. The framework provides: + + - Connectors to integrate bots with various messaging platforms like Slack, Telegram, Matrix, and Microsoft Teams. + - Modules to add functionality, including integration with external APIs (e.g., weather services) and natural language processing (NLP) tools like Rasa NLU or Dialogflow. + - Flexibility to extend bots for handling tasks like interacting with databases (MySQL), CMS systems (WordPress), and custom APIs. + +Opsdroid's modular architecture and welcoming community made it a perfect choice for my first open-source contribution. + +## Why I Chose Opsdroid + +I chose Opsdroid because: + + - Ease of Extensibility: It offers modular design, making it easy to add new skills or connectors. + - Well-Documented: The project includes extensive documentation and tutorials, which simplified the onboarding process. + - Community: The maintainers are responsive and open to new contributors. + +Additionally, Opsdroid provides a practical environment for experimenting with Python and APIs, a combination I was eager to explore. + +## Exploring Opsdroid Locally + +I began by cloning the Opsdroid repository and setting up the project locally. + +Following the official documentation, I installed the necessary dependencies and ran Opsdroid locally. This allowed me to experiment with various skills and connectors: +[opsdroid documentation](https://docs.opsdroid.dev/en/stable/quickstart.html) + + - Weather API Skill: I added a skill to fetch weather updates using the OpenWeatherMap API. + - Currency Conversion API: Another skill I added provided real-time currency exchange rates. + +These experiments helped me understand how Opsdroid interacts with APIs and responds to user inputs. + +## Contribution: Improving French Translations +### Identifying Translation Issues + +While exploring Opsdroid, I noticed that some French translations were either missing or incorrect in the opsdroid.po file located in locale/fr/LC_MESSAGES/. + +Examples: + + - Incorrect translations of technical terms. + - Missing translations for newly added features. + - Outdated line references in the .po file. + +### Tools Used + + - Poedit: A user-friendly software that simplifies managing and updating .po files. + - Gettext: I used this tool to extract translatable strings and generate updated .pot templates. + +Extract translatable strings from Python files : +find . -name '*.py' -printf '%P\n' > listfile.txt + +Generate a POT template file from Python files +xgettext -d messages -o locale/messages.pot --language=Python --from-code=UTF-8 -f listfile.txt + +### Updating Translations + + - Loaded the opsdroid.po file in Poedit. + - Updated the file with accurate translations for missing and incorrect entries. + - Ensured the file was synchronized with the latest .pot template to reflect accurate line numbers. + +## Submitting a Pull Request + +Once the translations were completed, I: + + - Forked the original Opsdroid repository and committed my changes. + - Created a pull request (PR) with a detailed explanation of the changes and referenced relevant issues. + +I ensured that the PR description was clear to facilitate review by the maintainers. + +## Journal + +Week 1: Discovering Opsdroid + + - Discovered Opsdroid through GitHub’s “Good First Issues†section. + - Explored the documentation and understood the project’s architecture. + +Week 2: Local Setup & Experimentation + + - Set up Opsdroid locally. + - Added custom skills and connected to external APIs. + +Week 3: Translation Contribution + + - Identified and fixed issues in the French translations using Poedit and Gettext. + - Submitted a pull request for review. + +## Conclusion + + Contributing to Opsdroid has been a rewarding experience. It taught me: + + - How to navigate open-source projects and follow community guidelines. + - The importance of communication when interacting with maintainers and fellow contributors. + - Technical skills like managing localization files and using translation tools like Poedit and Gettext. + +This experience has inspired me to continue contributing to open-source projects and improving my skills in collaborative software development. +This journey has been invaluable, and I look forward to making more contributions to the open-source community. diff --git "a/projects/projects_2024-25/Report-Micha\303\253l-Halleux-10692000.md" "b/projects/projects_2024-25/Report-Micha\303\253l-Halleux-10692000.md" new file mode 100644 index 0000000000000000000000000000000000000000..fa82c651027ddcce76c7bbdfa91a4d592d5d67fc --- /dev/null +++ "b/projects/projects_2024-25/Report-Micha\303\253l-Halleux-10692000.md" @@ -0,0 +1,94 @@ +# LINFO2401 project report - Contributing to an open source project + +| **Author** | Michaël Halleux | +|-------------------------|----------------------------------------------------------------------------------------------------| +| **Date** | 02/12/2024 | +| **NOMA** | 1069-2000 | +| **Academic Year** | 2024-2025 | +| **open source project** | [EuropeanFootballLeaguePredictor](https://github.com/nickpadd/EuropeanFootballLeaguePredictor.git) | +| **Pull request made** | [Setting up the project #84](https://github.com/nickpadd/EuropeanFootballLeaguePredictor/pull/84) | +| **License** | [MIT License](https://github.com/nickpadd/EuropeanFootballLeaguePredictor/blob/master/LICENSE.txt) | + +## Project: EuropeanFootballLeaguePredictor +_The following project description is a "copy and paste" of what was written by the original project maintainer._ + +EuropeanFootballLeaguePredictor is a predictor of europes top league games based on historic performances of teams, +taking into account only advanced league table statistics. It uses traditional machine learning techniques and +statistical modeling in order to deduct data driven predictions based on the team’s season performance and recent form. +The EuropeanFootballLeaguePredictor includes EnglishPremierLegue, La Liga, Ligue 1, Bundesliga, Serie A. + +The EuropeanFootballLeaguePredictor project and its associated predictions are provided for informational purposes. +The predictions generated by this project should not be considered as financial advice or recommendations to place bets +on any Premier League matches or other events. +Betting involves risks, and there is no guarantee that the predictions provided by this project will result in accurate +outcomes or profitable bets. The outcomes of sports events can be influenced by a wide range of variables that may not +be fully captured by the prediction model. + +## Choice of the project +To choose my project, I first asked myself what open source software I used on a daily basis. After listing them, I +realised that they were not suitable for me as my first contribution to an open source project because they were often +too large and complex. + +So I started to look for open source projects on the Internet to find one that was suitable for the work related to the +_LINFO2401_ course. I had four conditions that had to be met before choosing a project. +These four conditions, carefully prioritised, structured my search for a project. If the first condition wasn't met, I +didn't go any further and immediately moved on to exploring another project. This reasoning is similar to a decision +tree: ‘if condition 1 is satisfied, then examine condition 2; if not, give up and look for another project’: +1. A theme that I like and that I enjoy +2. Recent activity on the part of contributors +3. A project that's not too big (it's not very precise but my gut feeling is an excellent radar for that) +4. Possible interaction with the contributors + +So I saw this project, the main subject of which is sport, which is one of my passions in life. And the underlying theme +is machine learning, a branch that particularly interests me. I thought it would be a great opportunity to combine my +passion with my professional interests. + +## Contribution +I preferred to contact the project manager first to explain the context and get his agreement. Even though I wasn't +obliged to do this, I felt it was a mark of respect and it seemed to me to be part of the stages of contributing to a +project from what I had understood during _LINFO2401_. I therefore understood better who the author of this project was, +what he did for a living, why he wanted to do such a project and what his objective was with it. + +First of all, I had to set up and read the project for the first time. I realised that the project had a lot of +dependencies and this caught my attention. After talking to the author of the project about some of the ideas I had, but +especially about the feedback he'd had from users, I knew what I could suggest to try for improving part of the project. +In fact, according to him, users often had similar problems installing the project and running it locally. Often they +weren't familiar with the _poetry package_ and they had a lot of version problems when installing the dependencies. As +this seemed to be a recurring problem, I thought it would be a great way to contribute to the project and save the +maintainer time by not having to deal with the same issues over and over again. + +So I've developed two scripts to ensure maximum compatibility: a batch script (.bat) for Windows, designed to run via the +command prompt, and a bash script (.sh) for Linux and macOS. Although the languages are different, the two scripts have +exactly the same behaviour. These two scripts install all the project's dependencies with the correct version in a virtual +environment on the user's machine and explain the problem clearly to the user if they do not have the correct version of +python. + +With this in mind, I've decided to remove Poetry (and everything connected with it) in favour of centralised dependency management with the requirements.txt +file. This allows me to simplify the management of dependencies, avoid the reticence associated with Poetry and guarantee +a single, uniform method of installation, while limiting potential problems in the future. + +Advantages: +- The user has virtually nothing to do thanks to the script. +- The readme is easier to understand and more compact. +- If an error is reported, it's easier to understand what the problem is because all users will do exactly the same thing +(only running the script). So it's easier to understand where the problem is coming from. +- Dependencies are centralised in one place. +- The project is simplified in terms of number of files and number of lines (in fact, I removed 3950 lines from the +initial project and added only 139). + +Discussions with the maintainer also helped me understand how the contribution process worked on his project and how he +wanted us to suggest improvements. I asked him if I could make a pull request with my proposals without there necessarily +being an issue created for this beforehand. I thought it was important to try to respect and understand the contribution +process he was using in the project. + +## Conclusion +I know that I haven't carried out my pull requests in the way that good conventions would dictate. After making my first +pull request, the vast majority were accepted but some minor changes were requested. So I closed that pull request and +opened a new one that showed the changes that had been made. I know I should have changed this on my first pull request +to keep a clearer history of the changes. That's one more thing I've learnt thanks to this contribution! + +In conclusion, I think and hope that this contribution will solve some of the problems that users had. In any case, I +think it will help users who are less at ease with the domain. And I also hope that it will make maintenance work easier +afterwards for the developer. +I've been able to learn about lots of different areas thanks to my first contribution to the world of open source, +and it's made me want to make sure it won't be my last! \ No newline at end of file diff --git a/projects/projects_2024-25/Report-Romain-Barbason-22142000.md b/projects/projects_2024-25/Report-Romain-Barbason-22142000.md new file mode 100644 index 0000000000000000000000000000000000000000..912aac809d452d528090cce0e15ac1912755b3da --- /dev/null +++ b/projects/projects_2024-25/Report-Romain-Barbason-22142000.md @@ -0,0 +1,40 @@ +# **LINFO2401 project report - Contributing to an Open Source project** + +| **Author** | Romain Barbason | +| ----------------------- | -------------------------------------------------------------------------------| +| **Date** | 25/10/2024 | +| **NOMA** | 2214-20-00 | +| **Academic Year** | 2024-2025 | +| **Open Source Project** | [Babel](https://github.com/python-babel/babel) | +| **Pull request made** | [Changed get_week_number() to fix a problem with the locale en_AU #1146 ](https://github.com/python-babel/babel/pull/1146)| +| **License** | [BSD 3-Clause "New" or "Revised" License](https://github.com/python-babel/babel/blob/master/LICENSE) | + + +## Context + +Babel is a Python library whose goal is to simplify with internationalizing (date formats for example) and localizing Python applications (in particular in web-based applications, but also many other use cases). + +## Choice of Project + +I tried to found the issues of the Open Source applications I use on a daily basis, but the issues were too big for me. I began searching for smaller projects I could contribute to, with smaller issues for beginners. +After searching for a multitude of pages listing Open Source projetcs, I found Babel, which is made with Python, a language I am more than familiarised with. +I quite like the project in itself, since dates formats can be such a pain to work with, I thought this project was really uselful and practical. + +## Contribution Process + +I first read CONTRIBUTING.md, then found this [issue](https://github.com/python-babel/babel/issues/1133) which seemed good for a beginner like myself. + +My process was first to replicate the error, which i did easily, and then try to localize the error as precisely as I can. +I noted every discoveries I made along my research, so I do not forget anything between the days when I'm not working on this issue. + +After discovering the said bug, I fixed it, documented myself on the subject of dates formats, to see if my answer is indeed right, and then i submited it. + +After submiting my Pull Request, I was asked to also implements a few tests to see if everything works out, which i did days later, due to deadlines in this period. Writing this the 25th of November, I still haven't heard from the creators since. + +## Conclusion + +It's been a long time since i though about contributing to an open source project, and this course was a good introduction and opportunity to do it. I found the overall experience very pleasant and enlightening. +This inspires me to do more contribution in this project and others in the future ! + +--- + diff --git a/projects/projects_2024-25/Report-Xavier-Sanchez_16171800.md b/projects/projects_2024-25/Report-Xavier-Sanchez_16171800.md new file mode 100644 index 0000000000000000000000000000000000000000..73ee6b90ebbb2804345735fa7ed6e0e7f18ac038 --- /dev/null +++ b/projects/projects_2024-25/Report-Xavier-Sanchez_16171800.md @@ -0,0 +1,48 @@ +## Contributing to an Open Source Project : + +| **Author** | Xavier < Sanchez-Rivas | +| ----------------------- | -------------------------------------------------------------------------------------------- | +| **Date** | 25/11/2024 | +| **NOMA** | 1617-18-00 | +| **Academic Year** | 2024-2025 | +| **Open Source Project** | [findissues](https://github.com/MinecraftForge/MinecraftForge) | +| **Pull request made:** | [#10163](https://github.com/MinecraftForge/MinecraftForge/pull/10163) | +| **License** | [GPL license](https://github.com/MinecraftForge/MinecraftForge/blob/1.21.x/LICENSE.txt) | + +## **Project selection** + +The project selection process began as soon as the assignment was announced and explained. My initial feeling was one of uncertainty; I wasn’t sure where to start. My first idea was to explore GitHub projects that needed help, focusing on those tagged "Help wanted" or with "first good issues." However, the sheer number of available projects left me overwhelmed and unsure where to look. + +So I turned to a subject I’ve been passionate for years, like many others: video games. I reached out to the developers of League of Legends to ask if I could contribute by fixing bugs in the game itself. As I expected, they politely declined but wished me good luck with my coursework. + +Then I shifted my focus to another game that marked my youth: Minecraft. I found a mod for Minecraft called Forge, which aims to assist with compatibility between the game’s various mods. This project aligned perfectly with my interests and seemed like an excellent opportunity to contribute. + + +## **Contributing to the project** + +My first step was to ask the moderators of the project’s Discord server for a general explanation of how the contribution process worked. Here’s what one of the administrator, Fealtous, shared with me: + +"If you're familiar at all with github, standard git/software development procedures is most of the answer to that. +When a change is desired, a Pull Request is made (for example, here is one of paint's https://github.com/MinecraftForge/MinecraftForge/pull/10085). Once it's complete, it will be reviewed by the Triage team and/or Lex. If changes need to be made to to comply with code style or functionality changes, they'll be requested during this stage. +If everyone's happy, it will be approved and merged into the branch the PR is targeting. +This is just a general overview of the process, there might be some other steps involved but for the sake of a simple description, that's it." + +The license of this project is a typical GPL license. + +When I began working with the code, understanding how everything functioned proved very challenging. My initial focus was on the BlockProvider component, but testing and verifying that the code worked in the game was difficult. Significant installation issues made progress slow and frustrating. When I hit a roadblock, I decided to shift my attention to another issue involving NetworkRegistry. + +I was pleasantly surprised by the kindness and constructive tone of the feedback I received on my first pull request. The feedback was detailed and aimed at helping me understand the project’s expectations and improve the quality of my contribution. I particularly appreciated the way the moderators took the time to explain what needed to be corrected and guided me through the process of refining my code. This experience helped me understand the importance of following best practices in collaborative development, such as splitting changes into separate PRs to facilitate review and avoid mixing formatting adjustments with functional code changes. + +I also discovered useful tools and tips, particularly for configuring IntelliJ to prevent unintended formatting changes, which will undoubtedly be helpful in my future contributions. In summary, this exchange not only allowed me to improve my PR but also helped me acquire valuable skills for my future open-source contributions. + +## **Conclusion** + +This project has been a significant learning experience, teaching me how to engage effectively with an open-source community. It has highlighted the importance of perseverance, adaptability, collaboration and kindness, which are essential for contributing successfully to any project. I look forward to applying these lessons in my future contributions. + +## **Book** + +"La nuit des Temps" by René Barjavel, a science fiction novel published in 1968. + +Synopsis: The story begins with an international scientific expedition in Antarctica. The researchers detect a strange signal beneath the ice, seemingly originating from a long-lost civilization. After drilling to an extreme depth, they discover a gigantic golden sphere containing artifacts from a highly advanced civilization that lived 900,000 years ago... + +This book is highly interesting because it addresses the topic of: The fragility of civilization and the danger of technology. It shows how a technologically advanced society can destroy itself due to ambition and human conflicts. This theme remains highly relevant today with the ongoing wars and the "threat" posed by artificial intelligence. diff --git a/projects/projects_2024-25/Report_Cedric-Niyikiza_64492300.md b/projects/projects_2024-25/Report_Cedric-Niyikiza_64492300.md new file mode 100644 index 0000000000000000000000000000000000000000..def3c89e1f6e147158c9f7af95d4db4b6a9abf4e --- /dev/null +++ b/projects/projects_2024-25/Report_Cedric-Niyikiza_64492300.md @@ -0,0 +1,45 @@ + +# **LINFO2401 Project Report - Contributing to an Open Source project** +| **Author:** | _Cédric Niyikiza_ | +| ------------------------ | ----------------------------------------------------- | +| **NOMA:** | 64492300 | +| **Academic Year:** | 2024-2025 | +| **Open Source Project:** | [**e-vinci -** _js2_](https://github.com/e-vinci/js2) | +| **Pull request:** | [#14](https://github.com/e-vinci/js2/pull/14) | + + +## Project Selection + +To briefly explain how the project selection process went, it was pretty simple. I already knew that I wanted to work on a web project and implement a feature within the project I was going to select. In addition, I wanted this feature to make sense and to respond to a problem. + +I looked around the repositories of people I knew. And then the idea came to me to contribute to the site/syllabus of a teacher at [*my old school*](https://www.vinci.be/fr/formations/informatique-developpement-applications). + +So I selected a repository from among those initiated by a former Web / JS / React teacher, Raphael Baroni ([Linkedin](https://www.linkedin.com/in/raphael-baroni-0177ab41/) / [Personal Github](https://github.com/e-baron) / [Organization Github](https://github.com/e-vinci/)). + +I had very strong memories of my hours spent on the site of the JavaScript course ... And there was a big problem in my eyes... (My eyes were getting tired...) + +## Project Description + +So my project was to implement the ability to switch between a dark mode and a light mode. This was for the [Javascript course website](https://e-vinci.github.io/js2/) ([*BAC 2 at the Haute Ecole de Léonard de Vinci*](https://progcours.vinci.be/cocoon/cours/BINV2150-2.html)). + +## Journey Trough The Project +So the first thing I did was clone the project (obvious). + +- Attempt to launch the project following the `README.md` provided. + - Right from the start I had minor problems with the version of Node.JS used to compile the project. (Issue resolved thanks to [this solution](https://stackoverflow.com/a/77737680)). + +- Since I wasn't familiar with [Gatsby](https://www.gatsbyjs.com/), I went straight to the web to find out how to simply implement what I wanted. I saw that there was a way out with additional packages, but this strategy wasn't the right one because I didn't even understand how the project was subdivided. + +- So I took the time to look through the project's code and came across the `/scss` folder, which contained the files used to style the site's pages. I'd never used this variant of CSS before, so I was a bit scared at first. Looking in more detail at the files in this folder, I found the file containing the basic colors for the site. So all I had to do was add my color variables for my dark mode. But that wasn't all, I had to manage the style switch within the front-end. + +- To manage the switch, I had to add a button and add a scss file that would override the style of the whole site if the ‘Dark Mode’ button was clicked. + - For the button: Addition of a button in the navbar (management of the dark/light mode state) + - For the style : + - Addition of the `_darkmode.scss` file. Override style so that it makes sense and looks good. + - Import added to `main.scss`, so that the project recognizes these style rules. + +After all these steps, the feature was perfectly functional! 😠+ +## Conclusion + +To conclude, I'd say that I'm very satisfied with my contribution. It's allowed me to challenge myself with technologies I didn't know (Gatsby [Framework] and SCSS) and not give up in the face of difficulty. What's more, I'm pleased to have been able to contribute to a project initiated by someone who taught me Javascript and the basics of web development. \ No newline at end of file diff --git a/projects/projects_2024-25/Report_Corentin_Deruyck_55471900.md b/projects/projects_2024-25/Report_Corentin_Deruyck_55471900.md new file mode 100644 index 0000000000000000000000000000000000000000..39c084e0ea95ed2c8aa3fc4bdedf2a68e5e5c681 --- /dev/null +++ b/projects/projects_2024-25/Report_Corentin_Deruyck_55471900.md @@ -0,0 +1,34 @@ +# **LINFO2401: Open Source Strategy for Software Development - Contribution Report** + +| **Author:** | _Corentin Deruyck_ | +|--------------------------|--------------------------------------------------------------------------------------| +| **NOMA:** | 55471900 | +| **Academic Year:** | 2024-2025 | +| **Date:** | 20/09/2024 | +| **Open Source Project:** | [darkreader](https://github.com/darkreader/darkreader) | | +| **Pull request made:** | [1st pull made](https://github.com/darkreader/darkreader/pull/13274) [2nd pull made](https://github.com/darkreader/darkreader/pull/13287) [3rd pull made](https://github.com/darkreader/darkreader/pull/13294) +| **License** | [MIT License](https://github.com/darkreader/darkreader?tab=MIT-1-ov-file#readme) | + +## Project Contribution + +**21/09:** Today, I started looking into various possible open source projects. I discovered a lot of really interesting projects that I didn't know about. I quickly became interested in open source web extensions. I focused on the well-known extension Dark Reader. + +**22/09:** I began by learning about the steps to follow to contribute. There are different types of contributions, each with its own contribution method. For example, adding a website to the list of sites already in dark mode is quite simple, whereas proposing a new feature requires opening an issue and having a discussion about the usefulness of this feature. I took the opportunity to look at some pull requests, and I allowed myself to [respond to a pull request](https://github.com/darkreader/darkreader/pull/13270#issuecomment-2365335489) that did not follow the contribution guidelines. + +**23/09** I wanted to start with a small and simple contribution by adding a site that is already dark to the list of sites to be ignored by the extension. Here is my [pull request](https://github.com/darkreader/darkreader/pull/13274). + +**24/09** I started exploring the extension in search of bugs. I quickly found the extension to be very comprehensive and useful. While navigating through the extension’s settings, I noticed that a section allows the extension to be automatically activated based on time or geographic location. In this section, a dropdown menu was not displaying correctly. When clicked, the last selectable item was cut in half. I decided to fix this issue. + +**25/09** I began by trying to compile the extension and link it to the browser to easily modify the code and test the result. Once that step was completed, I dove into the source files looking for the bug. I then modified the .less file (improvement of the .css) to increase the space for the dropdown menu. I subsequently opened [a pull request](https://github.com/darkreader/darkreader/pull/13287) with this modification. + +**26/09** The pull request has been approved. + +**27/09** Today, I wanted to create a fix for an issue opened by another member of the community. I found this [issue](https://github.com/darkreader/darkreader/issues/13292). I then started working on the code to fix it before proposing [a pull request containing the fix](https://github.com/darkreader/darkreader/pull/13294). I linked the pull request to the issue and added [a comment](https://github.com/darkreader/darkreader/issues/13292#issuecomment-2379146070) notifying the issue creator that a fix has been proposed. + +## Book + +During my studies, I often heard about the number 42 being the answer to the ultimate question of life. So, I wanted to discover the book that includes this reference. While searching on the Internet, I found that the book is *The Hitchhiker’s Guide to the Galaxy* or *H2G2*. So, that's the book I read. + +I admit that it had been a long time since I last read a non-technical book (the last one dates back to high school), but after a difficult start, I ended up really enjoying the story. The beginning contains several descriptive passages using imaginary words, making it hard to picture. However, toward the end, small details from the beginning take on much more significance. The book also has multiple layers of meaning, often prompting us to question our society or our purpose in life. For example, there's a passage that says humans feel smarter than dolphins because they created technology, while dolphins feel smarter than humans because they are simply happy. This passage briefly made me question the meaning of life. Could it be that dolphins are actually superior to us because of their simple, happy lives? Will working from 9 to 5 for my entire life make me happy? + +SPOILER: The story starts with the destruction of Earth and ends by revealing that humans are the transistors of an ultra-powerful computer. This really made me think about what I truly want to do with my life, about the meaning I want to give it. If the Earth were to disappear tomorrow, would I have truly lived a meaningful life? \ No newline at end of file diff --git a/Report_Guillaume_Nzakimuena_17191800.md b/projects/projects_2024-25/Report_Guillaume_Nzakimuena_17191800.md similarity index 100% rename from Report_Guillaume_Nzakimuena_17191800.md rename to projects/projects_2024-25/Report_Guillaume_Nzakimuena_17191800.md diff --git a/projects/projects_2024-25/Report_Loic_Hernaut_69502300.MD b/projects/projects_2024-25/Report_Loic_Hernaut_69502300.MD new file mode 100644 index 0000000000000000000000000000000000000000..b40105ab3b8009e8896cff025184851651b8fb4a --- /dev/null +++ b/projects/projects_2024-25/Report_Loic_Hernaut_69502300.MD @@ -0,0 +1,33 @@ + +# **LINFO2401 project report - Contributing to an Open Source project** +| **Author:** | _Loïc Hernaut_ | +| ------------------------ | ---------------------------------------- | +| **NOMA:** | 69502300 | +| **Date:** | 05/12/2024 +| **Academic Year:** | 2024-2025 | | +| **Open Source Projects:** | [Organicmaps](https://github.com/organicmaps/organicmaps) +| **Pull requests made:** | [#9804](https://github.com/organicmaps/organicmaps/pull/9804) +| **License** | [Apache License 2.0](https://github.com/organicmaps/organicmaps/blob/master/LICENSE)| + + +## Choice of project + +The most difficult task for me was to find the right project. I didn't have an open source project in mind so I did some research on sites like [Up for Grabs](https://up-for-grabs.net/) and [good first issue](https://goodfirstissue.dev/). After some time and having looked at various projects, I found the [Organicmaps](https://github.com/organicmaps/organicmaps) project. I particularly liked this project because I remembered that I had already personally used this application in the past and I appreciated its ethical approach. So I decided to dive in. + +I searched for an affordable issue in the list of project issues and thanks to the filter _is:issue is:open label: “good first issueâ€_, I found an issue that was easily accessible for me ([#9676](https://github.com/organicmaps/organicmaps/issues/9676)). + +## Project description + +Organicmaps is a free mobile map application for Android and IOS. It's designed for drivers, walkers and cyclists. This application can be used offline and also displays hiking and cycling roads. It differs from standard map applications like Google Maps by not collecting user data and not displaying ads. It uses no trackers or unnecessary data exchange, and aims to conserve the device's battery. + +## My contribution + +The issue I chose to fix was related to the color of some panels in dark mode. Some panels in dark mode did not have the same color as in light mode. So after setting up the project on my computer, I changed the panel color in dark mode by modifying the CSS properties. Then I created my first pull request in an open source project. + +However, after discussing with a member of the community, I noticed that I had forgotten to take into account that the panels were not exactly the same color in dark mode as in light mode. In reality, they are slightly darker. I therefore adjusted my pull request to match the rest of the UI. After this change my pull request was accepted. + +## Conclusion + +I really enjoyed learning about what is Open Source. This has encouraged me to take part in other open source projects in the future and to dive 100% into a project that's important to me. I found the open source community very welcoming. And finally participating in an open source project made me remember that I started IT to express my creativity and take part in big projects. + + diff --git a/projects/projects_2024-25/report-Julien-Gourgue-43802000.md b/projects/projects_2024-25/report-Julien-Gourgue-43802000.md new file mode 100644 index 0000000000000000000000000000000000000000..09bf08a0afac48ac34ee795b5d4975da96d48467 --- /dev/null +++ b/projects/projects_2024-25/report-Julien-Gourgue-43802000.md @@ -0,0 +1,49 @@ +# LINF02401 project report - Contributing to an Open Source project + +| **Author** | Julien Gourgue | +| ----------------------- | --------------------------------------------------------------------| +| **Date** | 25/11/2024 | +| **NOMA** | 43802000 | +| **Academic Year** | 2024-2025 | +| **Open Source Project** | [winter-code-fest](https://github.com/dalurness/winter-code-fest)| +| **License** | [MIT License](https://github.com/dalurness/winter-code-fest/blob/main/LICENSE)| +| **Issue** | [#22](https://github.com/dalurness/winter-code-fest/issues/22)| +| **Pull request** | [Pull Request #58](https://github.com/dalurness/winter-code-fest/pull/58)| + +## **Project Selection** + +Firs of all, I want to contribute to Homarr as I found some interesting issues labeled as `good for beginner`. However when I tryed to solve these issues, +I realized that the documentation was not clear, and I couldn’t find instruction on how to compile the project. After multiple attempts, +I decided to make my first open source contribution to a smaller and more approachable project. + +Since I was not sure wich project contribute to, I used the GitHub Explorer to find potential projects. I filtered for repositories with the tag `good first issue` wich is helpfull for new contributors. I discovered a small project called Winter Code Fest. The project is still at its early stage, but the repository is well organized. It includes a detailed and well-written CONTRIBUTING.md file, which made it easier to understand how to get started. + +At first, I understood that the project is lookinf for new contributors to help to complete it before December. As it is still in the development phase, the maintainer has created numerous issues to guide new contributors on what needs to be done. The issues provided is clear, which encouraged me to contribute. + +## **Context** + +The project is like the Advent of Code but easier and so more for beginners. I think that it is a really nice way to learn computer science, to solve small exercises. The advantage of this kind of exercise is that you can solve them in the language you want, so it is also a good practice for advanced coders that want to learn a new language. The other nice idea of this project is that there is a community solution folder on the repository to let people send their solution code to help others. + +## **Project Data** +- Maintainer: [dalurness](https://github.com/dalurness) +- Number of contributors: 3 +- Number of stars: 11 + +## **Contribution Process** + +To begin my contribution, I started by exploring the open issues on the project's GitHub page. I looked for an issue tagged `god first issue`. I found one that interest me: making the correction code of Question 2. I left a comment on the issue page asking if someone was already assigned to it. If not, asked the maintainer to be assigned to it to let other people know I was working on it. + +The maintainer responded quickly and assigned me to the issue. I then read the CONTRIBUTION.md file that explains how to compile the project and the steps to contribute to it. Following the documentation, I compiled the project locally from source; it was really easy and fast as the documentation is well written; I only had to do some npm commands, and all worked perfectly. + +After that, I reed the code; This was my first time working with the framework and TypeScript; but it was not really difficult to adapt. +I had to make the correction of question 2, so I started by checking what the question 2 is and then made a Python Code to solve it. Once I had the solution to the exercise; I checked it multiple times to be sure that it is accurate. + +I watched how they did the correction for question 1 and reproduced/adapted it for the second question. After running the new code, all seemed to work correctly, so I decided to make my merge request. The project is still really new, and the maintainer is really active on it, so my merge request was reviewed and accepted quickly and updated on the official website. The correction for Question 2 is now live on the official website. + +## **Conclusion** + +Initilly, I hesitated to contribute to such a small and new project, but I asked myself If everyone only works on big known projects, how should a new project become known ? So I decided to give my time to this small project to help them finish for December. It was fascinating to participate for the first time to an Open Source project and I like the fact that you take your time to help other people that want to create a project but that cannot do everything alone. + +I learned multiple things, firstly a better understanding of GitHub because it was the first time I worked on an Open Source project, so I am not really familiar with the merge and the fork processes. I also learned a bit of TypeScript that I never used. But also some good practices for Open Source collaboration, such a contribution.md file that explains how to contribute to the project, but also the tags on the issue that help new contributors know what is the purpose of the issue. + +I hope this new project should gain visibility over time. I am proud to be one of its first contributor. diff --git a/projects/projects_2024-25/report-Logeot-Bastien-83471800.md b/projects/projects_2024-25/report-Logeot-Bastien-83471800.md new file mode 100644 index 0000000000000000000000000000000000000000..fd15dd1550410218ce924b15693ef081aa9bc33f --- /dev/null +++ b/projects/projects_2024-25/report-Logeot-Bastien-83471800.md @@ -0,0 +1,35 @@ +# Contributing to an open source project: OpenPasswordGen + +| **Author** | Bastien Logeot | +| ----------------------- | --------------------------------------------------------- | +| **Date** | 2024-11-23 | +| **NOMA** | 8347-18-00 | +| **Academic Year** | 2024-2025 | +| **Open Source Project** | [OpenPasswordGen](https://github.com/ToothedTomb/OpenPasswordGen) | +| **Pull request made** | [pr#1](https://github.com/ToothedTomb/OpenPasswordGen/pull/1) | +| **Pull request made** | [pr#2](https://github.com/ToothedTomb/OpenPasswordGen/pull/2) | + + +## Introduction + +As part of the course LINFO2401: Open Source Strategy for Software Development, I was tasked with identifying, analyzing, and contributing to an open-source project. This assignment gave me the chance to explore how open-source projects are structured and how contributions are made. I selected a small project to focus on, for my first experience in order to better understand how the project worked and to be able to make a meaningful contribution. In this report, I will describe the project I chose, my approach to learning about its structure, and the contributions I made. + +## Project: `OpenPasswordGen` + +`OpenPasswordGen` is an open-source C++ interface for generating secure passwords based on user-defined input lengths. It is designed to simplify the process of creating customizable password generation features in applications. By specifying the desired length, users can generate random and secure passwords tailored to their needs. The interface supports various character combinations, including uppercase and lowercase letters, digits, and special symbols, ensuring flexibility and strong security. Currently, the application supports English and Russian languages, with potential for expansion to additional languages in the future. + + +## Motivation + +While looking for an open-source project for this course, I wasn't sure where to begin, so I started browsing through GitHub. In the meantime, I encountered an issue with my passwords, which made me think about the need for a password generator. That’s when the idea struck to look for an open-source password generator project. Soon after, I discovered OpenPasswordGen. I noticed that there were areas where I could contribute, so I decided to try implement a French version of the application. + +## My contribution + +At first, I focused on understanding how the code worked and tested it by running the application in the currently supported languages (EN, RU). As the project is in C++, something that I never did, I thought that it could be difficult for me but I quickly found my bearings as it is very similar to C and I could compile it easily. +When I was completly familiar with the structure of the project and its functionality, I modified it to include a French version of the application.After ensuring that my changes worked perfectly, I submitted a pull request to integrate my work into the project. The pull request was reviewed and successfully accepted. +Following this, I made another pull request to update the README file to reflect the new features and to build upon the work that had already been done. + + +## Conclusion + +This was my first time participating in an open-source project. At first, I was a bit discouraged by the vast number of projects, and the open-source world seemed somewhat impenetrable. However, once I delved into it, I found it very interesting and quite rewarding to know that I was contributing to the projects of strangers by adding my small touch. diff --git a/projects/projects_2024-25/report_Nicolas_Antoine_53511900.md b/projects/projects_2024-25/report_Nicolas_Antoine_53511900.md new file mode 100644 index 0000000000000000000000000000000000000000..c8497b3c58d8771fd5117000c465810e55ae6887 --- /dev/null +++ b/projects/projects_2024-25/report_Nicolas_Antoine_53511900.md @@ -0,0 +1,84 @@ +# **LINFO2401 project report - Contributing to an Open Source project** + +| **Author** | Nicolas Antoine | +| ----------------------- | -------------------------------------------------------------------------------| +| **Date** | 19/11/2024 | +| **NOMA** | 53511900 | +| **Academic Year** | 2024-2025 + | +| **Open Source Project** | [Genome Analyzer](https://github.com/losuy/Genome-Analyser) +| **Open Source Project** | [Mental-Health-Support-Chatbot](https://github.com/Vikranth3140/Mental-Health-Support-Chatbot) +| **Pull request made** | [Update README.md #2](https://github.com/losuy/Genome-Analyser/pull/2) | +| **Pull request made** | [Disclaimer data privacy policy #16](https://github.com/Vikranth3140/Mental-Health-Support-Chatbot/pull/16) | +| **Pull request made** | [Added text size and slight adjustments #17](https://github.com/Vikranth3140/Mental-Health-Support-Chatbot/pull/17) | +| **License** | [MIT License](https://github.com/Vikranth3140/Mental-Health-Support-Chatbot/blob/main/LICENSE)| + +## 1 Introduction + +In the realm of learning about open source strategies for software development, I +have been tasked with finding, understanding, and contributing to an open source +project. This assignment provides an opportunity to dive into the world of open +source. In this report, I will outline my approach, including the specific projects +that I selected, the process of understanding their structures and communities, and +the contributions I made. + +## 2 First Approach + +To contribute to an open source project, the first step is to find one. This proved to +be a challenging task, as I initially had no idea where to start. I realized that I was +not actively using any open source software to which I could contribute, or that I +simply was not aware of such projects. +Through my research, I discovered a helpful resource: the website First Timers +Only, which is designed to guide newcomers to beginner-friendly open source projects +to contribute tohttps://www.firsttimersonly.com/. Exploring various options +on the site led me to a project called GenomeAnalyzer (https://github.com/ +losuy/Genome-Analyser). +The GenomeAnalyzer project is designed to provide a user-friendly software tool +to perform basic genomic data operations, specifically focusing on FASTA files, +which are commonly used to store nucleotide sequences. + +Unfortunately, there was not much to contribute at that time, as the project was +still in its early stages. However, I thought I could help by rearranging its README +file, which was somewhat unclear. My changes focused on clarifying the structure +of the document and making it more accessible for future contributors. + +## 3 Second Approach + +After leaving the GenomeAnalyzer project, I immediately decided to look for another +open source project that would suit me better. I found one called Mental Health Sup- +port Chatbothttps://github.com/Vikranth3140/Mental-Health-Support-Chatbot). +The Mental Health Support Chatbot is an innovative application designed to +provide users with mental health support through an interactive chat interface. +Built using Streamlit and OpenAI’s GPT-3.5-turbo model, this chatbot aims to +facilitate mental well-being by offering personalized assistance and insights. + +There are several issues listed in this open source project, so I jumped in and +tried to resolve one of them. The issue titled â€Add user data privacy notice†fo- +cused on informing users about data handling policies, especially regarding session +persistence. +The very first thing I needed to do was understand the code. Fortunately, it +consisted of only a few files, so I quickly grasped the content and how it achieved +the results I encountered. Here is the code I added to address the issue: + +While discussing my changes and Pull Request (PR) with the project owner, I +felt motivated to contribute even more, so I decided to explore additional ways to +assist the project. + +The feature #12 Improve Accessibility Features tickled my curiosity. This issue +addresses the current shortcomings in accessibility support, which may affect usabil- +ity for users with disabilities. To enhance the user experience, consider implementing +features such as adjustable text sizes. +After many tries, I succeed to obtain something quite satisfying. + +I also improved the quality of the graph to make it clearer and more visually +appealing. + +## 4 Conclusion + +Before starting this course, I had never tried contributing to an open source project. +I always thought it would be too difficult and beyond my skills. However, through +this experience, I learned that it’s not as complicated as I imagined. With some +research and a willingness to learn, I was able to find projects, understand their +structure, and make useful contributions. + +