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.
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.
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.
After the addition of option of lists in notes, the UI became very ugly. So I suggested to edit it in this issue.
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.
Uptil this stage, the user could only create an account but had no option to delete it. So I suggested this feature.
Here I suggested to add a footer to contain the delete account button and also suggested to make the app of single page height.
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.
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.
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.
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.
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.
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.
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.
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.
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.
It addressed the issue #17 . I changed the look of the card to display notes in this 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.
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.
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.
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).
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.
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.
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.
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.