My Interaction with FOSSASIA

Hello World,

I’m a student in class 11th from a small city. I first came in interaction with FOSSASIA through Google Code In 2016. I was not one of the geek of coding and open-source. My school in which I’m studying was not one of the coding related and they mostly deal with academics.

It was the last year winter when my school got closed and I was nothing to do. Then I came across GCI with the help of my brother. I first learnt basic HTML/CSS and I put my image on the GCI website of FOSSASIA.

Then I found about the Github Pages. It was really great since I am able to see the changes made by me by publishing my own website. The mentors are really supporting of FOSSASIA since they provide immense support for one to complete the task.

Technologies:

I came across lots of technologies that I was not aware of and it helped me a lot in completing the task.

Heroku – I can deploy my website here and tell people the URL to visit the site.
Travis – Its like a whole new system, where you can use to compile and run the program.

Projects:

There are lots of project of FOSSASIA that I like but the one which I like the most is SUSI. I have keen interest in bots, artificial intelligence and machine learning. And I think SUSI is one of that kind.

In recent time, I’m very much fascinated by Google Assistant and Siri. Seeing them and SUSI, I want to develop SUSI upto that level. The good is that I have source code with me to config and test my changes right away. I need to learn lots of things before proceeding, I don’t much right now, but I have my interest in it.

Open-Source Application:

I use Chrome as a web browser, VLC as a media player, and atom,sublime as a text editor. I tried Libre Office for writing purpose.

Communication Channel:

There are lots of channel I know like telegram, slack, gitter, irc. For communicating with FOSSSAIA I mostly use Gitter.

Projects and Technologies to learn:

As I told, I mostly most my interest toward AI and ML. I am also interest in Android development. I used android phones and whenever I came across any glitch, bug in the app, I started searching for the mediums to reach to the developers and report them.

I believe that not just solving but reporting issues also comes under contribution since if I wouldn’t tell the developers then how would they improve. That is the reason I also like beta programs. From where I am also able to checkout the feature as well as help the community too.

I also want to learn Android and want to have my own application on playstore and I would love to see people using my application. I want to become that much level of developer in Android that Google community should start releasing my patches as a OTA update to the android devices.

 

Resizing Image to 240 X 240

There was an issue on the on the Google Code In 2017 website of FOSSASIA. It has a requirement to upload the image in a mention size of 240 X 240 pixel on the website. One of the contributor has uploaded the image in a different dimension. I too had a Google Code-In task to resolve any issue to passed that.
Then I came across an issue to set the images to 240 X 240. I asked to assign me the task.
First I fork the GCI17 site of FOSSASIA. Then I cloned the forked repo.
After that I started searching for the directory which contains the images folder which leads me to several folders. From where I searched for blog folder as the issue which I was solving is the fault in the blog image.
Now I cut the image to my desktop. I seached for images resizing webapp on google which shows several sites. I visited one site which ask me for the image upload then it asks for the required size. I type 240 X 240 and choose the unit as pixel.
Then it converted the image and downloaded it. I pasted the image in the eaxct location where I cut the original image from blog folder under img directory. Then I renamed the image to the exact name as it was old.
It was exactly like the same old condition but the only thing changed is the ratio of image resolution.
Now its time to push all the changes made by me.
I then add the file where changes has been made using git add. Then I made a commit using git commit -m “commit messasge”.
Then I pushed the changes in the forked repo using git push origin gh-pages. Then I made a pull request for my changes to get merged to complete the task.
Then I went it the setting of repo and then to the Github Pages option to build the webapp in the on Github Page. Through this way the mentors can review the changes made by me. (https://awesometushar000.github.io/gci17.fossasia.org/)
The travis is used in the repo for continuous integration. Since the repo is based on Jekyll, it is required to build it to run. So travis is used here to perform that task. Here Travis has decided to break the task into two job to shorten the time period. When I looked out the issue (https://github.com/fossasia/gci17.fossasia.org/issues/179) I found a link to Travis job (https://travis-ci.org/fossasia/gci17.fossasia.org/jobs/313342013#L686) where the problem is and this is the reason of failing test of travis in the previous commits.
As before my pull request got accepted I got a message of arise of merge conflict. I was surprised that no one is working on that particular directory then how the conflict may arise. I was even more surprised to came to know that it was a merge conflict in a image file. I pull the repo again and found that the image file is missing. I copied the old converted image file to the location and push the changes. Thus I completed the task (https://codein.withgoogle.com/dashboard/task-instances/6412267404918784/) and solved the issue (https://github.com/fossasia/gci17.fossasia.org/issues/179).

Google Code-In 2016

                        INTRODUCTION TO GITHUB


This blog will help you to push your project on github. Make your project open-source to introduce it to the world. Managing different versions of your project will become quite handy.

In this we will start with an introduction to git and then see some basics command to push the project .

What is Git ?

Git is an open source and free version control system which helps you to manage different version of a project effectively and quite efficiently.

It is used for software development and other version control tasks. It was created by Linus Torvalds in 2005.

 Git Push: Pushing refers to upload your project onto a server such as github.com here. So that others will use your code and can fork too.

Step 1: Installing Git in your system.

 

 

This is the page which shows the command-line to install git in different operating systems.

For windows you have to download .exe file and install it.

 

I am using Ubuntu 16.04 here.

 

Type sudo apt-get install git to install git in your system.

Step 2: Now its time to create an id on github.com .

We need an id on git to deploy our projects on that Github account.

After you successfully log in then you will be welcomed by such screen.

Step 3: Click on the ‘+’ sign on the top right to create a new repository.

Repository: A repository is simply a folder which contains all of the files and data of your source project.

After you create your repository, you will see a page like this:

Step 4: On your computer, go to your directory using the terminal, using the linux command line you would cd into the directory. 

From here you run the following commands to “connect” your existing project to your repository on github.

 Step 5: First do this to initialize git (version control).

git init

This command will create an empty git repository. This is mostly the first command you will have to run to make available all the other commands. Initalization is must to make git request to successfully execute the rest of the commands. 

Suppose if we don’t initalize the folder which we have to commit then push, then its impossible for git add to data the files which is to be committed. 

This will initializes a git repository – creates the initial ‘.git’ directory in a new or in an existing project.

Example: cd /home/user/Desktop/version_control/git

Note:  The .git directory – It is a hidden directory which contains some files used to run the commands. We basically don’t have to tense about this folder.

Step 6: Then do this to add all your files to be “monitored.”

git add .

This command will adds files changes in your working directory to your index, so that it get added and from now it will be part of the project. It will add the changes to the working directory. It would not affect till you made the next commit and at the time of commit the file will get updated which you add up before. 

Step 7: Then you commit and add a note in between the “”

git commit -m "Initial Commit"

Commit –“commit” is a snapshot of our repository. Snapshot refers to different versions of the project or the file.

Git commit refers to the changes which you made in your project and you have provided that type of change a name, so that in future if you need to roll back, you can easily do it. Committing is as important as git add since the update wouldn’t be there if the commit hasn’t been made. As in the snapshot it can been seen that it also shows the the files which are committed, it is the same files which are add by us.

If we don’t use git commit, the changes we made will not be saved which we further going to push.

Step 8:Now copy your git repository address

Step 9: Now, here is where you have to add  your repository git remote add github  

Note: which i asked you to copy then command is:

git remote add github https://github.com/meets2tushar/my_webpage.git

You will asked here to enter your github username and password. This is required so that no other person could made changes to your repository without your permission

It may happened that you have to execute this command more than once (as in my case) . This could happen due to lost in connection or may be failure of the server. 

 git remote add: This command will help you to add your project to the particular repository which you created on github. The url used is the address of the repository in which you want the changes to be made. Thus after executing this command the changes are become ready to push to the repository.

Initially we have to provide the url to let the git know that where to the data.

Step 10: Test to see that it worked by doing

git remote -v

It will list all currently configured remote repositories. We can see from the image that the url where our repository is and is being ready to push.

Step 11: Now its time to push changes to github.

git push -u origin master

 It will push the local repository to the github account and make it completely online and open-source. Thus the last command which actually upload or update the changes made in our project.

Now refresh the github page to view the changes.

screenshot-from-2016-12-06-23-00-56

We can see now that what we have add and then commit are push to the repository address which we add add using git remote add.

So each command has its own importance and they must be executed in a sequence as mention. 

Thank You

I hope you like this blog,

comment your important feedback.