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.