KWOC Project Report

Pratik Singh
4 min readJan 7, 2021

Name : Pratik Singh
Institution: Dayananda Sagar College of Engineering, Bangalore.

Github Handle: kitarp29

About KWoC:

KWoC (Kharagpur Winter Of Code) is an annual open source program conducted by Kharagpur Open Source Society, IIT Kharagpur. It is a five week long program that runs during the month of December. It is aimed at promoting open source participation and helping students prepare for events like GSoC.

Contribution #1

Project : web-development-Resource
About the Project:

Learning the skills one needs for web design or web development is the first step toward working on the web but that also means familiarizing oneself with the tools of the trade. The web is constantly changing and as a web developer one has to be able to adapt to the constant changes.

That’s why they put together this huge list of web development resources and tools to help one as a web developer to stay up-to-date, learn new things, be more productive, and perhaps also help beginners better.

My PR: Added an article about mongoose over mongo native driver

I communicated with the Mentor in an issue. MongoDB is becoming one of the most trending NoSQL Database in today’s market. As a beginner its really tiresome to use the Native driver of MongoDB. There is a much better way to achieve the desired things done using Mongoose. Mongoose is a much easier and simplified way that should be used by all developers. Since this Repo was one of the most Busy Repo, I got an issue assigned very late. I added a resource that described the advantages of Mongoose over Mongo’s Native driver.

Contribution #2:

Project: Mumble

About the project:

Mumble is a chatting web app built using Node JS, socket.io and Mustache Template Libraries.

My PR:

I made two PRs in this Project.

  1. Added registration system and backend
  2. Login Pages

I wanted to develop a User Registration and Login system for this Project.

I communicated with the Mentor in an issue . I made a system in the Project that lets User to register themselves on the platform with their Email and Password. They can use the same credentials to Log in later. All of this data will be saved in a MongoDB Database. I used Mongoose to setup and connect the code with the Database. The session of the users were saved as Cookies, so users won’t get logged out at every step. The setup gave access of certain routes to only authenticated users. The main code ran on NodeJS and handled the requests that the server got from users.

I also made the Front-end pages of the setup. The Pages were simple as requested by my Mentor. But all of the Pages were Responsive to be compatible with all screen sizes. I used Bootstrap to achieve the compatibility. The Backend was built on expressJS and the pages were rendered in ejs. The variables are rendered are passed among the code using body-parser .

My Experience of KWoC:

The last five weeks I have been working in KWoC. I have learned a lot on the way. At the start of the program, I had to decide and go through all the projects in hand. As a MERN Stack developer and C++ (C.P.) , so the projects I aimed were mainly related to Web development and DSA Problems. There were several projects that had many challenging issues in them. I went through the projects and decided to work on issues with back-end development opportunities. After raising several issues, I was assigned some of them. I started to work on the system to make user’s register and login.

My Workflow was as follows-

  • I cloned the Projects.
  • Once the project was in my system I had to go through the entire code base to understand the project.
  • When I was done with the npm packages and started to run on my localhost.
  • Now I started to work on my end to setup the server in ExpressJs and NodeJs.
  • I defined the various routes to handle the GET and POST requests by the user.
  • I setup the database, made the userschema(the design of the database) and connected it to my server.
  • I used Mongoose package to handle the MongoDB functions. Once the system was ready and working in my localhost. I tested it made sure it worked. I committed the codebase and made my Pull Request.
  • I had made the front end of the system in ejs and bootstrap. And made my second PR. These Pages are Responsive and have simpler UI.
  • My last PR was to the Web-development Resources Repo .
  • I also learned about YAML in updating the README.

Overall it was a Program that helped me learn about working with others. Learning, working and implementing on others’ code. I learned much more about the Open-Source Community and Github.

Report: Pratik Singh (Kitarp29)

--

--

Pratik Singh

I'm a Developer creating technology to elevate people, and building community. MERN Stack dev and CP lover in C++