Notes long online program for the students of various

Notes AppUser’s Information: Myself Dipayan Ghosh. I am a 2nd Year graduate Student from Jadavpur University studying under Computer Science & Engineering Department.About KWoC:”For the things we have to learn before we can do them, we learn by doing them.” — Aristotle, the Nicomachean Ethics.I just have followed his code words.Kharagpur Winter of Code is a 5-week long online program for the students of various colleges to work on some projects and a stepping stone in the world of open source contributions. These program is especially set for those who are new to open source software development. I initially had some basic knowledge of git. But we all know that knowledge is useless unless we apply. My mentor caught my flaws while using GitHub in windows in the mid of December and she send few links and materials to get me accustomed with the use gitbash for faster and easier work. I wanted to take part in Google Summer of Code, but I was unware of the procedures, working of the program which made me less confident. So, I went on.Choosing the Project:The very first step of project selection is the most critical stage that I firmly believe. I kept in mind that I should choose that I am capable to do. Web Developing Projects attracts me the most. From the many topic I thought of working with the “Notes App” which I found to be simple and quite interesting as I have never developed such before. Internet says common available Web based notes are liable of keeping track of notes in a much organized way and keeping the information to oneself safe and secure. I went on with this few key notes. I love to code in Php and JavaScript. My mentor for this project was revered Ankita Sahoo. I sent her a mail and she replied me with the instructions for proceedings.Key features:1.SimpleOur app is made simple meaning you will spend less time fighting and more time writing. It is faster and lighter than most of the other available notes app.2.Category based classification of notesGenre based classification is done among notes for easy search and grouping of similar contextual notes.3.Long-lastingYou probably don’t care, so we’ll care for you: our apps are built carefully to optimize overall lifetime and long-term survivability with date notify for scheduled notes.Progress:FeatureAddition of Restricted keyboardIt is common with the users for trying to test the system. We know very well that a name i.e. First name and Last name cannot consist of any either numbers or punctuations. Hence, there may be tendency that the user may try to give wrong data either intentionally or unintentionally. In order, to avoid wrong data entry in the database I have added a Java Script thereby allowing only for the alphabet keys to remain enabled while filling the values. Below are a snapshot and snippet from code.The reader is encouraged to take a look at this pull request #10 for more information.MVCImplementation of MVC ArchitectureWikipedia says “Model–view–controller (MVC) is a software architectural pattern that divides a given application into three interconnected parts. This is done to separate internal representations of information from the ways information is presented to, and accepted from, the use. The MVC design pattern decouples these major components allowing for efficient code reuse and parallel development.” I have given the MVC Architecture implementation of the entire model for easy, neat access to the pages of the model. I have kept three folders according to the rules namely; model, view and controller and kept the index.php page outside. Given below are a snapshot and snippet from code.The reader is encouraged to take a look at this pull request #20 and issue #14 resolved for more information.Key ChangeChange of Primary to Unique Key for ‘id’ and making ‘username’ to as the new primary keyWhile working in the project, I, found that if we use same username but different email-id there was no problem in a new account creation. This led to a problem that a newly created account with a already registered username can view all the private notes just after creation of such new account. We can clearly understand this is a loop hole, which needs attention. Hence, I change the ‘id’ from primary key to unique key and ‘username’ as our new primary key.Given below are a snapshot and snippet from code.The reader is encouraged to take a look at this pull request #24 for more information.Info Add Addition of Date & Time for more user signup informationIt was only date which was stored during signup process. So, a small change I made for to store the date and system time during the sign up process for more significant data.Given below are a snapshot and snippet from code.The reader is encouraged to take a look at this pull request #24 for more information.Fault Truncating of notesI have solved this fault and pushed on the same branch that was used for implementation of MVC architecture. This was done by adding a limit in the number of characters that are allowed to be written in the text space. So, after adding it we can see that not even one character more than the fixed number input characters will be allowed to write in the text space. Thus, there will be no data loss from site page to database by truncation.Given below are a snapshot and snippet from code.The reader is encouraged to take a look at this pull request #20 and issue #21 resolved for more information.FeatureInstant Display of Remaining Characters from the textbox while typing as user friendly warningWhile we are typing it is very beneficial to let us be aware about the restriction of characters in length. And to display them below instantly while typing can be more user friendly. This feature is kept active for pages in adding and editing.Given below are a snapshot and snippet from code.The reader is encouraged to take a look at this pull request #20 for more information.Feature Calendar & Event SchedulerCalendar & Event Scheduler can be helpful as a reference of a calendar while writing a note. The scheduler can be made capable of notifying the user with this feature if implemented later and modified with respect to this.Given below are a snapshot and snippet from code.The reader is encouraged to take a look at this pull request #42 for more information.Feature Three Features ADDEDThree features are added I the Notes App, according to our need, i.e. 1. The User has an extra feature of starring and pinning itself to the top; this feature is really helpful in marking as important and keeping the positons at the top if the top is not of any other pinned notes. 2. Calendar entry was done for date related events in note which can be need at times for a remainder, like party, birthday celebrations, travel, etc.; this feature is really helpful at times by notifying and punching a remainder before the occasion. 3. Last modification time is get stored for after adding notes or editing notes; this feature let us see when did the user has modified the note last.Given below are a snapshot and snippet from code.  The reader is encouraged to take a look at this pull request #42 for more information.A Thank you Note!!A very huge thank you to Ankita Sahoo for bearing my silly questions and guiding me throughout. If it wasn’t her, this whole learning process would have a dead end in the middle or it would have taken weeks to complete and the learning curve would have been tough. Lot more to learn from you. Thanks again!! I would also extend my heartiest thank to IIT Kharagpur Open Source Society (KOSS) for conducting such a beginner friendly program. Learning was the main code of conduct for the event. Hoping for such more events like this in future. A special mention I would definitely love & hope to work again in future under her mentorship. 🙂