As I approach the end of the semester, where I started out on my open source journey, I started looking for an interesting issue for one last contribution before the term concludes.
In this blog, I'll be discussing what issue I chose, why I chose it, and how I plan to start working on it.
Table of Contents
Β 1. The Notification π
Β Β Β Β Β Β 1.1. The Project
Β Β Β Β Β Β 1.2. The Issue π
Β 2. Motivation πͺ
Β 3. The Plan πΊοΈ
Β 4. Conclusion π
The Notification π
As I was starting to look for something to work on, I got a notification from one of the projects I worked on a few weeks ago called Chatroom.
I opened the notification and it was the project maintainer asking my help for another issue that was open on his repository for a long time. Now even though the project is fairly young, and isn't something I am actually looking for my last contribution, I find the issue really interesting and don't want to deny the request of maintainer.
The Project
But before I talk about what the issue actually is, I would like to give a brief overview of what the project is about.
Chatroom is an open-source social media application with a React frontend and an Express backend.
It looks and feels like many of any other social media application out there, but when you start using it you realize there's a lot of functionalities that have not been implemented and have placeholder UI controls. This makes it a great project for making contributions that have a huge impact on the project, but at the same time your learning is limited compared to working on a large project with a thriving community.
The Issue π
Now that we know what the project is about, I'll explain what the issue is.
Currently, the application stores all its data in MongoDB, which is a good choice for an application like this that demands flexibility.
However the problem is there is no proper storage set up to store and manage image data. Any images that are uploaded, from user registration to posts with media are stored in the server's filesystem.
This is fine when you're testing your project in a very early stage, but saving images which are basically blobs is not a good idea due to performance and security reasons.
Which is why the maintainer proposed using Cloudinary, a cloud based image management platform for optimizing, editing, and managing media for applications.
Used by major tech companies and trusted by more than 1 million developers, Cloudinary stands out as a really tempting option to use.
Motivation πͺ
You might be wondering why I am so interested in working on this issue when there are thousands of more available to work on.
My motivation to work on this stems from the fact that I am currently taking a Cloud class as well, and we recently integrated a very popular cloud storage called Amazon S3 with our microservice for blob (Binary Large Objects) data storage.
Currently we only support storing text based data, but in the next couple of weeks, we are expected to support storage of image data as well. Since this issue is pretty similar to what I have to do anyway, I would love to explore this area before I have to do something similar for my assignment π.
The Plan πΊοΈ
Instead of jumping straight into the issue, I have come up with a plan to tackle this one as this one doesn't seem as straight-forward as the other ones.
1. I'll start by researching more about how to use Cloudinary by exploring some examples.
2. Next, I'll have to examine the existing code in the project to get an idea of how the image uploads are being handled in the client application, and what middlewares are being used in the server to store the uploads.
3. Lastly, I'll come up with the easiest way to Integrate Cloudinary with the application based on the observations I make in step 2.
Conclusion π
And that is the plan I have come up with for my final open source contribution this term.
I'll be following up with another post to share my progress and everything goes smoothly as planned.
In the meantime, I'd love to hear about your experiences with open source contributions or any suggestions you might have! Feel free to drop your thoughts in the comments below.
Stay Tuned π.
Top comments (0)