Experience of contributing to Open-Source Project
Tags: python, opensource
Published: 2023-06-15 06:56:03

As a software developer, contributing to open-source projects is an excellent way to improve your skills and collaborate with other developers worldwide. I recently had the opportunity to contribute to an open-source project called "**Junction**", which manages call for proposals in PyCon India conferences.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/flxm8qe3okmui6ze2nia.png)
I am grateful to my employer, EPAM, for providing me with the opportunity to work on open-source projects. EPAM is a global software engineering services company that offers a range of technology solutions to help clients transform their businesses. In the Python unit at EPAM, we have a culture of open-source contribution, and we are encouraged to participate in such projects.
![EPAM logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j11a49e1rqnw2x59dg40.png)

###My First Open-Source Project
**Junction** was the first open-source project I worked on, and it was an incredible learning experience. The project is available on GitHub https://github.com/pythonindia/junction, where developers can collaborate and contribute to open issues.
![Junction project dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iozwrl1g7t79ck58qbhq.png)
When my colleagues- [Ananya Maiti](https://dev.to/ananyo2012), Rohit Chopra and I first looked into **Junction**, we found that the project had multiple issues, including broken GitHub login and password reset, deprecated versions of Python and Django, to dockerize Junction and other technical problems. Our first task was to upgrade Python and Django to their latest versions, which would help address many of the project's other issues.

###Fixing Open Issues
I and Rohit worked together to upgrade Python to version 3.10 and Django to version 3.2. We also fixed the social login issue via GitHub and Google, allowing users to log in and reset their passwords through these platforms. Additionally, we worked on several other issues, such as dropping Python 2 support, upgrading Django to 2.2 LTS, and fixing other bugs and technical issues.
Our work on the GitHub issues [#730](https://github.com/pythonindia/junction/issues/730), [#614](https://github.com/pythonindia/junction/issues/614), and [#611](https://github.com/pythonindia/junction/issues/611) helped to address several critical problems with **Junction**. By upgrading to the latest versions of Python and Django, we ensured that the project was running on stable, reliable software. We also fixed the social login issue, which is an essential feature for many users. Dropping support for Python 2 allowed us to take advantage of the latest language features and make the code more efficient and maintainable.
Ananya Maiti worked on dockerizing Junction and made it ready for the production [#749] (https://github.com/pythonindia/junction/pull/749). He also fixed few unit tests which were failing after Django 2.2 upgrade and added gunicorn for Production Server [#748](https://github.com/pythonindia/junction/pull/748). Fixing SMTP configuration for sending emails, conference moderator filter so that Conference is viewable to Moderators in Django Admin Panel and Proposal comment template parameters which were causing 404 errors were fixed by him only.
![A picture benefits of contributing to open-source project](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8adtzf23ia2rsvqryvb.png)

Overall, contributing to **Junction** was a challenging but rewarding experience. We had the opportunity to work with developers from around the world and learn from their skills and expertise. The technical challenges we faced helped us to improve our skills and gain a deeper understanding of software development. We encourage other developers to contribute to open-source projects, as it is a great way to improve your skills and contribute to the community.

> Disclaimer
> This is a personal [blog, post, statement, opinion]. The views and opinions expressed here are only those of the author and do not represent those of any organization or any individual with whom the author may be associated, professionally or personally.