Monday, December 9, 2019

Release 0.4: Final Update (Week #3)

Release 0.4: Final Update

This is the final update for Release 0.4. I completed the internal and external requests which I will list down below. 

External: 

Issue #1: click here
PR for Issue #1: click here
 
Issue #2: click here
PR for Issue #2:  click here

Internal:

Issue: click here
PR for Issue:  click here 


For the final release, I did 1 internal issue and 2 external issues. The internal issue was regarding passing the HTML through our coded HTML sanitizer before it gets put into post objects. I got into a bit of trouble understanding what the sanitizer is for and what it is suppose to do. However, through some research and I read through old issues where other classmates did sanitization for their code and I finally understood the purpose of sanitization. For the external issues, I did 1 issue which fixes a bug that occurred in the users code where he couldn't clear the input box for his to do list when he adds a new task/item. The 2nd external issue was a bit bigger which was about deleting items/tasks on the to-do list. This was done by adding a new Javascript file and adding a new function to delete row dynamically. I learned a lot in this release which included improving my skills in HTML / JS and also working with the HTML sanitizer that was created by another issue beforehand. 

Release 0.4: Week #2

Release 0.4: 2nd Update

The progress of Release 0.4 has been pretty good. I assisted another classmate with a issue and even though they did majority of the work, I did participate in researching and fixing bugs that took place.

Internal Issue: click here
PR: click here: click here

This week wasn't too productive which I regret as I was consumed by major projects from different courses. However, for this internal issue, it was about switching from JSDOM to puppeteer. I am glad that we were able to complete on time, however, I was unable to go for help with the teacher due to my schedule. Thus, my partner ended up doing it more consistently. Other than this, I was still unable to find a external issue for Release 0.4 and was currently rushing. It was decided that this issue and pull request be given to my partner and I find another one to be fair. So my learning objective for this week is to be more productive / obtain better time management.

Friday, November 22, 2019

Release 0.4

Release 0.4: 1st Update

We have finally reached the final release of the semester and it requires us: 
                1. A Large pull request in an external project 
                2. A pull request in the telescope class project 
                3. Blog posts about what I did, the process, and what I learned as I went forward. 

For this release, I have not found a large pull request for an external project as of yet. I am still on the hunt to find one that I want to work on! For the telescope class project, I am working with a classmate on making our HTML to text parser to use puppeteer instead of JSDOM. This requires me to go through the API and learn how puppeteer works as I have never heard of this before I started this issue. We have learned quite a bit through our own research and we have now tried to implement it to our issue. This pull request is still a Work in Progress. 

Hopefully, by the end of next week, I have a external project that I can work on for the final release. It's hard to find something that is interesting and understandable. Some projects look great, however, they don't make any sense or I don't know how to even go about fixing the issues they have posted. I need to do more research find something more suited to me but I want it to be outside of my comfort zone so I learn more in the process.  


Friday, November 15, 2019

Release 0.3 - Internal and External Issues

Release 0.3

For Release 0.3, I successfully completed a merged internal pull request for Seneca-CDOT/telescope which was a course wide programming project where I worked with over 50+ Seneca students. For my internal issues which can be located in the links down below if you press, "click here" for the internal issue and internal PR.

Internal Issue: click here 
Internal PR: click here

For my internal issue, I decided to incorporate fragmentation to the HTML to text Parser which updated the previously coded HTML to text parser that used general JSDOM. In simplicity, HTML to text parser takes the HTML code and returns just the plain text back so we can use it for the project. A simple incorporated HTML code to text parser was created by another student and I enhanced it to use fragmentation. Fragmentation is used when you don't need the whole document of HTML. It can takes parts and pieces and return the plain text for it. This makes it easier for us to just parse HTML to text for parts of the code we actually need except everything.

External Issue: click here
External PR: click here 
 
For my external issue, I did a much bigger issue than the ones I did for the Hacktoberfest. I continued on a project I worked on in Release 0.2 which was called Instance. Instance is equivalent to a blog / picture diary. The project required someone to work on creating the Registration / Sign up page for the Instance website. This included:

  1. Fields that I created/already there before but added to form: First Name, Last Name, Username, password, and Email.
  2. Added a background image
  3. Added some validation aspects to the fields which includes:
    i. Making the fields required.
    ii. The first and Last name only take alphabets.
    iii. Password has a minimum length of 8.
  4. Created a "Already have an account?" button that redirects to the login page if clicked.
  5. Added CSS to make it look better.
 

Saturday, November 9, 2019

Release 0.3 - What I am doing

Release 0.3


For Release 0.3, we are required to do 1 larger external pull request - which has to be bigger than the pull requests we did in Release 0.2. Furthermore, we need to make a pull request in the classes internal project with over 50 other classmates working on the same repository.

For my external pull request, I decided to continue working on a project from Release 0.2 called, "Instances". The issue that I have decided to take on in this project is called, "Design the registration page". The requester is requiring I design the registration / sign-up page for the Instances website.

External request:click here

I am excited to work on the external request because it will give me experience working on larger projects and it will help take me out of my comfort zone because I am always looking for the easier tasks to do. 

For my internal pull request, I am working on an assigned part of the assignment that was given by the teacher. The internal pull request is involved with extracting plan text from html.

Internal request: click here

The internal request will be good experience for me because it will be my first time working with a project that is shared between 50 people. 

Here are the instructions given by the teacher:

We are building a bunch of pieces of our pipeline that will give us HTML, that is, a blog post from a user's feed. What we also need for later parts of the analysis pipeline is the ability to work on plain text vs. html.
Let's add a parsing function that works like this:
  • given some HTML as an argument
  • parse the HTML using https://github.com/jsdom/jsdom into a DOM
  • querySelector() for the element we want (maybe all of document.body?)
  • once we have that elem we can obtain it's text using elem.innerText and return that from the function
We also need tests for this, which can happen in another issue/PR. @PavanKKamra has expressed some interest in this, and he might be glad to have some others work with him on it.

The teacher also provided a way for me to start:

To get started, I would do the following:
  • being a new branch issue-75
  • add JSDOM using npm install --save jsdom
  • add a new file to src named text-parsefr.js or something
  • in your new file, create a function with this basic shape:
const jsdom = require("jsdom");

const { JSDOM } = jsdom;

exports.run = async function (html) {
  // put your code here.
}

Saturday, November 2, 2019

Release 0.2 - Week #4

Hactoberfest 2019- Week #4

For the last week of Hactoberfest 2019, I completed two issues for this week of the Hacktoberfest. The issues and the PR will be listed down below: 

Issue #4: click here 
PR #4: click here

Issue #5: click here
PR #5: click here

The first issue I worked on for week#4 was about improving the README file for an Event API. My changes included:

  1. Made some changes to word choices. 
  2. Took out some redundant information like install NodeJS / Git when mentioned beforehand in the pre-requisites. 
  3. Grammar check. 

The second issue was a bug that the footer of the website was not acting according to the desired functionality. The footer at the bottom of the website was overlapping with the content which mainly occurred when scrolling up and down a page. This issue required me to download: 
  1. NodeJS and MongoDB to make it work on the local host. 
I fixed the issue by making changes in the CSS with the position / width / height elements and then tested it to make sure it worked. 

This week was a larger learning curve for me because I got to work with setting up NodeJS and MongoDB and then fixing a bug in the footer of the website. Furthermore, I had to follow a tutorial on setting up the MongoDB database from Youtube which was great! Moreover, I had to do research on other projects README files to see how I can improve the one I did for Issue#4 which was a very extensive research period. 

Monday, October 21, 2019

Release 0.2 - Week #3

Hactoberfest 2019- Week #3


For the 3rd week of Hactoberfest 2019, I had to do some learning to finish the request which was excellent because I took on a request / issue that I did not know how to do myself.

For the issue, click here
For the pull request, click here.

First, for this issue/request required me to format the users read me file. His read me file consisted of a lot of permissions / commands that were listed with bullet points and it was structured in an unorganized fashion. For example: 
















The way I contributed to his read me file was by cleaning it to look more aesthetically pleasing and I created data tables for his Features, Permissions, and Commands. For example: 










As mentioned before, this required me to do a bit of research / learning because I was unfamiliar on how to created tables/fix the code on the GitHub read me file. 

I felt like this request was a good experience for me because it gave me a chance to learn how to organize documentation on GitHub because that would be a required skill to have if I ever decided to create or put up my own code on GitHub. 

Tuesday, October 15, 2019

Release 0.2 - Week #2


Hactoberfest 2019- Week #2


For the 2nd week of Hactoberfest 2019, I worked on a bit more complex open source request / project than I did last week. It required much more time but I feel like I made quick a bit of progress on the issue.

For the issue, click here
For the pull request, click here

First, this issue/request required us to contribute to his code as much as possible. He had Several code files which were different Sorting Algorithms in different programming languages which included: JavaScript, C / C++ Programming, and Java. Pretty much it looked like an unsorted file of sorting algorithms:



The way I contributed to his code included:

1. Sorting his algorithms in sub - folders and based on the Sorting Type, I grouped them together. Like this:



Structure Change:
       Sorting(Folder)
                 BubbleSort(SubFolder)
                           - Files related to BubbleSort
                 BucketSort(SubFolder)
                           - Files related to BucketSort
                  ..... continuation

2. I did code clean up + documentation on functions / important parts of the code that required the user to understand what was happening.

This issue was a good experience for me because it required me to look at the code and make changes where I see fit. Except requesting specific changes, he let us take control and told us to contribute to his project as much as possible. Due to this, I was able to examine the code and find fixes on my own which is a good skill to have in general. The pull request has not been accepted yet, however, I hope my changes are up to his standard and they do get accepted.

Monday, October 7, 2019

Release 0.2 - Week #1

Hactoberfest 2019- Week #1

For the 1st week of Hactoberfest 2019, I worked on my first open source request / project. It was quite a simple one but I was glad that my fix was merged and accepted. 

For the issue, click here
For the pull request, click here

First, the issue for this request was that the user wanted a structural change for his web application. his index.html contained his HTML code, CSS code, and JS code, all in one. He wanted to separate this coding structure to look more like this: 

-docs/
   |-src/
   |-css/
      |-style.css
   |-js/
      |-dark-mode.js
Restructure the cod. Move style/css code to css folder and html to be in index.html file and js code to js folder. 
  
Thus, the css and javascript are in external files and are called from index.html. So, the changes I made included: 

1. Taking the CSS out of the index.html and creating an external CSS file called style.css in a folder called css. 
2. Calling the css external file from index.html
3. Doing the same as Number 1 with Javascript -- Except calling it dark-mode.js under the JS file. Called the js file from index.html as well. 
4. Cleaned the code a bit. 
5. These changes were made by forking the persons repo, then cloning the repo, made the required changes and I created a branch called "Fixes - #19". 

This was a great learning experience for me because I was able to understand and finish someones request in a good amount of time. I actually asked on the issue if I could work on this issue, however, before I could get a response, I could see that people were committing the code, thus, I quickly finished the request and made a pull request. Luckily for me, the other people who worked on it forgot some of the requirements and my pull request got merged instead of theirs.


 

Lab #3 - Octoberfest Preparation

Hactoberfest 2019 Preparation 

This is the first time I will be participating in the Hacktoberfest. It was mentioned in our Open-Source development class several times when we started, however, I didn't realize it was mandatory to do for the course and thus, I didn't have much interest in it until now. Due to the fact that it's required for the course, I am actually looking into it more and I realized that this is such a good opportunity and I should have take initiative and looked at this beforehand. For starters, I love competition and competing with other people to win prizes and this is a perfect example of that. The first 50,000 that complete 4 pull request(s) win t-shirts which I high-key want the t-shirt. 

 For this month, my goals include: 

1. get involved in a project that you find interesting

2. Work on code including HTML / CSS / JS; web - application development based.

3.  I want to work more with Git and Github Desktop 

 After researching some open issues available on Github, I found these three that look particularly interesting: 

1. Split html file into three different file and folder, restructure webpage #19 

2. Create a nice homepage #7 

3. Improve the UI #15 

I choose these 3 thinks because they have to do with HTML changes / additions / fixes.  To achieve these goals, I will look at the requirements and see if I am able to complete it. I will measure the progress based on the size of the issues and I will put the issue in my phone to keep track on how long I've been working on the issue.

 

Release 0.4: Final Update (Week #3)

Release 0.4: Final Update This is the final update for Release 0.4. I completed the internal and external requests which I will list do...