Skip to content
Extraits de code Groupes Projets
Valider 5dcda71b rédigé par Lionel Dricot's avatar Lionel Dricot
Parcourir les fichiers

Merge branch 'elbawab-master-patch-90344' into 'master'

add report for Guillaume Nzakimuena 17191800

See merge request ldricot/lingi2401!357
parents b439d529 efa04d0e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# **LINFO2401 project report - Contributing to an Open Source project**
| **Author:** | _Guillaume Nzakimuena_ |
| ------------------------ | ---------------------------------------- |
| **NOMA:** | 17191800 |
| **Academic Year:** | 2024-2025 |
| **Open Source Project:** | [PetMe](https://github.com/akshitagupta15june/PetMe) \| [Basic-Python-Programs](https://github.com/souravjain540/Basic-Python-Programs) \| [offline-qr-code](https://github.com/rugk/offline-qr-code)|
| **Pull request made:** | [PR#1984 - PetMe](https://github.com/akshitagupta15june/PetMe/pull/1984) \| [PR#521 - Basic-Pyton-Programs](https://github.com/souravjain540/Basic-Python-Programs/pull/521) \| [PR#342 - offline-qr-code](https://github.com/rugk/offline-qr-code/pull/342)|
| **License** | [MIT license - PetMe](https://github.com/akshitagupta15june/PetMe?tab=MIT-1-ov-file#readme) \| [MIT license - offline-qr-code](https://github.com/GuillaumeZaki/offline-qr-code?tab=License-1-ov-file#readme)|
## **Choice of the projects and contribution**
### **Finding the first project : PetMe**
This is the first time I have contributed to a open source project and finding a project was not easy. I had no idea how to find a project and I spent the first weeks searching on google - "which open source project to contribute to as a beginner" - but results were not concluent as it was always the same projects and ideas that came back. I asked other students of the course if they found a project and how they did it. One of these student told me about [Up-for-grabs](https://up-for-grabs.net/#/). So I began looking for a project on it but I couldn't find one that was interesting to me until I came accros [PetMe](https://github.com/akshitagupta15june/PetMe).
#### **What is PetMe**
The goal of the founders of [PetMe](https://github.com/akshitagupta15june/PetMe) is to create a website dedicated to the well being and help of animals in danger. The site allows people to help pets in different ways. People can adopt pets in by providing their contact. If a pet owner is unable to keep taking care of their pet, they can donate him via the site. The site allows people to contact nearest emergency medical services to get emergency care for their pet or a stray animal. Also the website has a blog section where users can tell their stories.
#### **My contribution to PetMe**
To contribute to this project I have first read the guidelines on contributions which were well explained. I made a fork of the project, then installed it on my computer and began to look into the structure of the project and how I could make it work. It was quite easy since I have learned HTML, CSS and Javascript in the past and even made websites. By analysing the website, I realized that in the blog section there was a bug where some pet images was not displayed. I tried to find out where the problem originated from and noticed that the extensions of the images (which were PNGs) were called in the html code with the extension jpeg. I called the right extension and the images were then displayed properly. I also realized that the entire website has a certain style and a light/dark mode but that it didn't apply to the blog section. I then implemented a button to change the mode and rearrange the syle of the blog pages like the navbar. I also implemented a button in the bottom of the page that allows user to go back to the top after they have scrolled down. After all theses changes I [opened an issue](https://github.com/akshitagupta15june/PetMe/issues/1981) on the gitup project page and I made a [pull request](https://github.com/akshitagupta15june/PetMe/pull/1984). After a week I didn't get any response from the maintainer, I realized that other contributers had the same issue. I then decided to send an email to the maintainer and sent a message on the discord of the project. Even in the discord server, the maintainer didn't reply to anyone. As the days passed I became increasingly more stressed because I didn't want the lack of response to stop me. Instead of waiting in hope of an answer, I looked after other projects to contribute to.
### **Finding the second project : Basic-Python-Programs**
I found a Basic-Python-Program to which the last activity of the maintainer was from a year ago but on which there was still activity from the contributors dating back a few days. So I tried my luck and made my contribution to the project regardless of the lack of responses from the contributor.
#### **What is Basic-Python-Program**
Basic-Python-Program is a project that aims to bring together different types of programs, applications, utilities that are usefull for users such as sorting algorithms, mini games, dice simulator, ect. I chose this project because it is an easy project for a beginner to contribute to it.
#### **My contribution to Basic-Python-Program**
I read the guidelines to contributions and I made a program that didn't already exist in the project. The program I made is an electrical values converter. I chose to code this program because it is a useful tool for scientific studies that I had already needed in the past and thus knew others might have a need for such a program. Once I made sure it was working, I made a pull request. Days passed as I waited for the maintainer to check my [pull request](https://github.com/souravjain540/Basic-Python-Programs/pull/521) but once again I did not get a response. At this point my stress levels were high because I had contributed to two different projects and had failed to get a response from the maintainers. So I decided to try one last time with an other project called [offline-qr-code](https://github.com/rugk/offline-qr-code)
### **Finding the third project : offline-qr-code**
While looking for a project on [Up-for-grabs](https://up-for-grabs.net/#/), I came across one that uses web language (html, css and javascript). This project is called [offline-qr-code](https://github.com/rugk/offline-qr-code). Looking at the project's github I saw that the maintainer was active since he had replied to several contributors over the previous few days. I sent an email message to the project maintainer explaining that I was new to open source, that I wanted to contribute to his project and how to do so. The next day I received a response from him. I was happy to finally be able to exchange with a contributor. In his response he told me that I could either select a problem that was not yet assigned to someone or open my own issue and make a pull request. I chose the latter and opened my issue.
#### **What is offline-qr-code**
Offline-qr-code is a Firefox extension that allows you to generate a QR code based on the URL of the web page you are on or to generate a QR code based on another text. The advantage is that it works completely offline which allows you to maintain your privacy.
#### **My contribution to offline-qr-code**
As always, I read the guidelines and forked the project. I read the tutorial which explained how to install and run the extension in developer mode on Firefox. It wasn't difficult to get it working thanks to how well explained the tutorial was. I began with analyzing the structure of the project and then dove into my contribution.
I implemented a button that would copy the text entered to generate the QR code to the clipboard. I added this button and also added a message that appears for a few seconds and then hen disappears to indicate to the user that the copy has been successfully completed. I made sure everything was working properly and then made my [pull request](https://github.com/rugk/offline-qr-code/pull/342)
A few days later I received a message from the maintainer saying that they had done a review to my pull request. Unfortunately he explained to me that he didn't want to accept my contribution as he didn't really see the usefulness of the feature I came up with. In addition there were a few things that he didn't like in terms of style. He kindly explained everything to me and even gave me a couple useful advice on my current and future contributions.
## **Lessons learned**
Contributing to an open source project for the first time was an enriching experience despite the difficulties I encountered. While talking with other students, I discovered platforms such as *Up-for-grabs* which helped me identify accessible projects. However, I learned that the maintainer's activity is crucial to a successful contribution and I understood that it is important to check if they are active before contributing to avoid wasting time.
I also discovered that communication plays an essential role. By directly contacting a maintainer via email for offline-qr-code, I was able to establish a constructive dialogue. This showed me that it helps to explain your intentions before contributing.
Even though some of my contributions were ignored or denied, these experiences taught me to accept failure and learn from it to improve.
## **Conclusion**
I was stressed about having to contribute to an open source project because it was a first for me and I didn't know how to find one or how to contribute to it.
Despite the difficulties I encountered, I enjoyed contributing to various projects and in the future will keep on contributing where I can.
# **Book presentation**
As a book to read, I chose “The War of the Worlds” by Herbert George Wells. The book tells the story of the invasion of planet Earth by Martian aliens who are much more technologically advanced than humans and who destroy everything in their path. The story follows the narrator as he tries to survive all this chaos. Finaly the Martians are defeated not by humans but by terrestrial microbes to which they are not immune. This story reminds me of large companies that hold monopolies over certain software, leaving developers and users unable to compete until open source arrives to challenge them.
I enjoyed diving back into a book because it had been a long time since I had read it and it allowed me to use my imagination in another way.
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter