About KWOC

Kharagpur Winter of Code is a 5-week long online programme for students who are new to open source software development. KWoC provides a great opportunity to get acquainted with Github along with Git commands and contribute to open source efficiently. The programme not only helps students to get involved in open source, but also prepares them for many open source summer programmes; Google Summer of Code being one of them.


About Keep Clone

Keep Clone is an app which is made using reactJS and Firebase Database. I chose it because I'm interested in Web and App development and hence committed myself with its development during this one month period. At the time starting of KWOC, it was in its basic stage with login and SignUp feature and form to enter and store the title and description of notes. But after KWOC, it has developede greatly.

Issues Opened by me.


The loading Page doesn't work properly. #24

This was the first issue open by me. I found that the loading page doesn't work as expected and doesn't redirect to the Login or Home page till we refresh it.


Designing the list section of notes. #36

After the addition of option of lists in notes, the UI became very ugly. So I suggested to edit it in this issue.


display the drawing within the notes area. #37

After the addition of option of canvas in notes, I found out that the drawing goes out the canvas region. So I suggested to solve it in this issue.


Delete a user #41

Uptil this stage, the user could only create an account but had no option to delete it. So I suggested this feature.


Addition of footer and appearance in a single page height. #45

Here I suggested to add a footer to contain the delete account button and also suggested to make the app of single page height.


Error Handling in Login Page. #48

Till then the error was shown using only alert() option. So I suggested to modify it to a better way as in shown in standard apps.


Bugs in Verify Email page. #50

I found that the verifyEmail page doesn't work properly and doesn't redirect to the login page in case of a faulty email used for signup and it stays in that page even after restarting the server.

Merged PRs sent by me.


Issue #1: design the login page resolved. #6 PR.

This was the first issue solved by me. It addressed the issue #1 of designing the login page. Initially it was plain html with two input boxes ans a submit button. I gave a new look to the page.


Issue #5: Google Sign In added. #9 PR.

It addressed the issue #5 adding Google Authentication. Initially it had only the option to signup using email and password. I added the Google Authentication. I did it using firebase.


Issue #7: store the uid along with notes. #11 PR.

It addressed the issue #7. Initially any user could see other user's notes as well. I had the feature to store UID along with notes. This was done so that the user can see only the notes that he adds.


Issue #4: Improve the design of the homepage #21 PR.

It addressed the issue #4 . I improved the look of the homepage and added a button which when clicked would show the Add Notes Form and made other improvenents including addition of header.


Issue #16: Design the card to enter notes. #23 PR.

It addressed the issue #16 . Till then there was no design in this region and it didn't look good. I improved the look of the Add Notes form by using the various css propeties and positioned the buttons to appropriate places.


Issue #24: The loading Page doesn't work properly. #25 PR.

It addressed the issue #24 . I changed the working of the function controlling the loading page and then it could redirect back to homepage or Login page.


Issue #28: Add clear button for the drawing canvas. #30 PR.

It addressed the issue #28 . By this time, option to draw on canvas was added by another participant. I added the feature to clear the whole canvas using one click. I wrote a function to do the work and added a button to bind that function.


Issue #17: Design card to display notes. #32 PR.

It addressed the issue #17 . I changed the look of the card to display notes in this PR.


Issue #3: Add list option with check and uncheck button. #35 PR.

It addressed the issue #3. Uptil then, there was only the option to draw on notes or store paragraphs in notes. I added the option to add lists in the notes along with description.


Issue #37: Display the drawing within the notes area. #38 PR.

It addressed the issue #37 . I modified the cards display section to solve this. I in creased the width of the notes and added a few designing.


Issue #41: Delete a user. #42 PR.

It addressed the issue #41 . I wrote a function to delete a user and remove it from firebase after showing a warning message and added a button for that.


Issue #45: Addition of footer and appearance in a single page height. #46 PR.

It addressed the issue #45 . I modified the homepage to add this feature. I also added a feature to hide the parts which are empty while displaying notes and also a `div` which would show up only when the note added is completely empty (i.e. without any title or description).


Issue #43: Implement search. #47 PR.

It addressed the issue #43 . I wrote a function to search the database and find and display only the notes having that keyword in it.


Issue #48: Error Handling in Login Page. #49 PR.

It addressed the issue #48 . I modified the login Page to add this feature. I added a `div` which would appear only when error occurs and would contain the error.


Issue #50: Bugs in Verify Email page. #51 PR.

It addressed the issue #50 . I modified the verifyEmail Page to solve this. I wrote a fuction and added a button to return to the Login page.

SUMMARY

Before KWOC I had no knowlege about Git and GitHub but now I'm good enough to start my own project. Thanks to it, I've learned about contribution to Open Source. I'm interested in Web Development but had no idea how to start but now I know. I learnt the technique to sunderstand such huge chunks of code ands use them to my advantage. I've also learned to use ReactJS and Google Firebase which I had no idea about before KWOC.

The project which I worked on also developed by leaps and bounds compared to what it was before the Start of KWOC. My mentor helped me a lot during this period. Thanks to him, I've learnt a great deal.

The KWOC team deserves much gratitude and applaud for organizing such an event.