New Open Source Contribution
Tags: opensource, javascript, osdssg, octo
Published: 2021-09-24 23:22:32

### Open Source Community Contribution
This week of OSD600 is amazing. I had a chance to contribute to the project of someone else and had another programmer work on my project. 
In more detail, I sent Luigi, who is the project owner, a request to work on his project through the issues channel, and after getting accepted by him, I started forking and cloning his project. In general, his tool was working well, there were also some errors but they did not affect the tool much. 
My task was supporting his tool by adding some features or functions that could allow the software to read not only <code>.txt</code> file, but also <code>.md</code> file. An <code>.md</code> file is a markdown file which has some features of formatting the text. For example:
<code># hello</code> 
will be converted into 
```
<h1>hello</h1>
```
After testing and making sure the function was working well, I sent Luigi the pull request and my work got accepted.

### Issues
One of the challenges for me was fitting my codes with his style of coding. I have my own logic, Luigi has his own logic about the release 0.1, our styles were completely different. However, Luigi did a good job and his codes were clear enough for me to understand. 
I am a type of person who does not like to use semicolon in JavaScript so I set up my Visual Studio Code to get rid all of the semicolons at the end of each line, this accidentally removed all the semicolons of Luigi's codes, and another same issue happened that changed double quotes to single quotes. Moreover, when I created a new function, my codes conflicted with some of his codes so I asked Luigi to make some changes. Also, I used Regular Expression in the project. And as you can probably guess, Regex is a nightmare for most of the programmers, I was struggling a lot with finding the appropriate regex to read the markdown file, but the tool worked eventually and I was really happy about that. Next time, I have to be more careful with code formatting, and I need to check my Visual Studio Code setting before touching someone else's project.

### Experiences
I was having a blast working with someone else's project. Last week, I gave feedbacks to Menghi to fix some of his errors code and also to improve his codes. This week, I can fix and write codes directly to Luigi's project. So far, I have learnt 2 more new different coding styles. This is a great progress because in the future, if I work for a company, I definitely need to understand more and more coding styles of my co-workers as well as previous codes of the senior developers. 

### My Project Got Developed By Another Programmer
There was a good news that my project got supported by Emily, one of the Open Source developers in my OSD600 group. Emily helped me on creating a new function that allows my tool to read markdown files input. Her contribution was amazing with a professional coding style, my software now is even better.

### Projects Link:
Luigi's Octo: https://github.com/LuigiZaccagnini/octo
Octo's Markdown issue: https://github.com/LuigiZaccagnini/octo/issues/7
Pull request to Octo: https://github.com/LuigiZaccagnini/octo/pull/8
My OSD600-SSG: https://github.com/nguyenhung15913/OSD600-SSG
OSD600-SSG Markdown issue: https://github.com/nguyenhung15913/OSD600-SSG/issues/10
Emily's pull request: https://github.com/nguyenhung15913/OSD600-SSG/pull/11