Page MenuHomePhabricator

GSoc Proposal[2016]: Reading List
Closed, DeclinedPublic

Description

Student Profile

Name: Haritha H
Email: haritha.h20@gmail.com
IRC: haritha_ (freenode)
Blog: https://harithaharikumar.wordpress.com
Github: https://github.com/haritha28
Gerrit: https://gerrit.wikimedia.org/r/#/q/owner:Haritha28+status:merged,n,z:
Time zone: UTC +5:30(IST- India)
Location: Kerala, India
Typical working hours: Weekdays 5PM-2AM, Weekends : 9AM-11PM

Reading List

Synopsis

This project aims to implement reading lists into wikimedia projects. The idea was suggested in the https://meta.wikimedia.org/wiki/2015_Community_Wishlist_Survey/Reading#Reading_List community wishlist consultation and supported by multiple community members.

Mentors: @Jhernandez (technical), @4nn1l2 (community)

Deliverables

Right now the only way to save pages into lists is using the watchlist (one single list, multipurpose, tailored for editing tasks) or using wiki pages in the user namespace (public lists, non-structured wikitext, no grouping, filtering, sorting, etc.).

The scope of the project is to provide users with ways to save pages into lists/buckets, in a private way (like the watchlist), for later reference or reading. This should work on the desktop site and the mobile site both.

Core Objectives

Adding to the list: A logged in user can save pages into their reading lists from either of:

  1. From the page itself - a button ( probably a book icon ) neatly arranged next to the Watchlist button would be the best approach.
  2. From the lists interface - a Special:Reading List page, which can allow adding pages to user reading lists.

Managing lists: A logged in user can create new lists, and provide a name and description for their own reference. By default, all additions goes to a default list.

Special:Reading List

In general, a user can get the following options from the Special page:

  1. View the user's reading lists
  2. Edit their readings lists
  3. Edit title/description of the reading list
  4. Remove/add pages to the reading list
  5. Sort items (manually, by edit date, by added date)
  6. And can delete it
  7. And can export it to a public page (wikitext)
  8. Adding in tags each item, for reference ( see screenshot attached ).
Optional objectives
  1. Setting reminders to lists ( echo notifo reminding about it )
  2. Exporting list as books ( PDF/epub )
  3. Sharing ownership of lists with other users

Basic view

rsz_1rl1.png (240×482 px, 47 KB)

Timeline

Before Project Begins
  • Focus on fixing more bugs related to Gather extension and get microtasks done.
  • Understand the drawbacks of Gather and make required steps not repeat them in Reading List
During Project Period
Tasks to be completed Timeline
Community bonding period, get familiar with the community, contribute by submitting and fixing bugs.22 April to 23 May 2016
Set up Database.24 May to 31 May 2016
Set up Basic Outline1 June to 8 June 2016
Front end Phase I9 June to 16 June 2016
Code review, Fixing bugs17 June to 20 June 2016
Mid Term Evaluation21 June 2016
Adding to Special Preferences: Reading List22 June to 28 June 2016
Front end Phase II29 June to 14 July 2016
Writing unit tests,Testing the work flow15 July to 25 July 2016
Writing Documentation, Deployment25 July to 12 August 2016
Code Cleaning and Wrap-up12 August to 21 August 2016
Final Report Submission22 August 2016

Details

Community Bonding Period

  1. Interact with the community via IRC, mailing list.
  2. Discuss with mentors about Reading List implementation.
  3. Prepare the sketch for basic outline of Reading List.
  4. Get details of Database for the extension.
  5. Fix more bugs related to Gather extension.
  6. Get more details of the Optional features to be implemented.

Database

  1. Sort the details for database into different tables.
  2. Implement the details.

Basic Outline

  1. Setup the basic outline for the Reading Extension.
  2. Implement functionality for adding pages to list.
  3. Add an icon to add pages to the Reading List.
  4. Add pages to Reading List via List interface.

Front-end Phase I

  1. Implement basic functionalities like editing pages to reading List.
    1. Save Pages
    2. Delete Pages
    3. Add Description.
    4. Add Tags.
  2. Add functionality for sorting pages.
  3. Enable Functionality for viewing for the reading List.

Code Review

  1. Give the written code for review.
  2. Fix all the bugs
  3. Get the project ready for MVP

Front-end Phase II

  1. Add feature for searching pages to List like searching by tags, dates.
  2. Implement the required optional features like to do's reminders etc.

Writing Unit Test

  1. Writing Test scripts for the project for Reading List.
  2. Running the Test scripts.
  3. Code-review and code cleaning.

Documentation

  1. Documenting all the data for respective files.
  2. Test for all errors and debug.

Wrap-up

  1. Final week of Code cleaning and debugging.
  2. Deployment of the project.
  3. Submit the code to Google(22 August)

About Me

I am a FOSS evangelist, Computer Science major from Amrita School of Engineering, India. I started contributing to Open Source through Mediawiki doing small bug fixing. Having worked with the different kinds of bugs in a different environment improved my skills to analyze the code and submit relevant patches. All my contributions would be listed down in my Gerrit, Github. As a newbie, I was encouraged by the community on various platforms like mailing lists, IRC, which kept me involved and motivated was the constant support from the community.

I am a self-motivated programmer who is working towards for the development of a strong FOSS community by helping as many as FOSS enthusiast as I could. I have volunteered to conduct a Google Code-In three-day workshop for school teachers, so more young students can start contributing to the Open source. Through this event, some students started contributing to MediaWiki.

Skills

Web Development: HTML/CSS , JavaScript, Php, SQL
Operating Systems : GNU/Linux, Windows
Version Control System: Git
Frameworks: Bootstrap

Micro Tasks

Event Timeline

Haritha28 updated the task description. (Show Details)

@Haritha28 I've edited the description to follow the format in T93585 and defined/organised the objectives of the project into what I think we can get done.

What do you think? We still have to come up with the timeline.

@Joshua_Kperator : Please dont move tasks to columns you are unaware of, without any proper reasons.

IMPORTANT: The deadline for submitting your proposal for Outreachy'12 falls in less than 24 hours at Mar 22 2016, 07:00 pm UTC. . Please make sure that you have a copy of your proposal in the application system at outreachy.gnome.org beforehand, and make sure it has answers to the specific questions in https://wiki.gnome.org/Outreachy#Application_Form. You are encouraged to apply for both GSoC and Outreachy, in case you are eligible.
Haritha28 renamed this task from GSoc Proposal - Reading List (Draft) to GSoc Proposal[2016]: Reading List.Mar 21 2016, 6:03 PM
Haritha28 updated the task description. (Show Details)
Haritha28 added a project: Outreachy-Round-12.
IMPORTANT: The deadline for submitting your proposal to Google Summer of Code 2016 application system at GSoC application system falls in roughly 24 hours at Mar 25 2016, 19:00 UTC. Please make sure that you have a pdf copy of your proposal in the application system beforehand, to avoid last minute confusions. Remember to relate your Phabricator task and associate 2 mentors in the proposal description, so that it gets easy for review. Past the deadline, you should only make changes limited to fixing typos, or incorporating feedback's. Good Luck, and check out the micro-tasks!

Since this proposal is valid for both GSoC and Outreachy, we are considering it for GSoC only, as per our rules at https://www.mediawiki.org/wiki/Google_Summer_of_Code/Admins#Proposal_submission_phase

Hi Haritha. Your proposal looks good and I see you've got a bunch of patches merged. That's great. It's a good time to start thinking about the Implementation details of this project and whether there are parts you can borrow from Gather. The timeline needs to be more detailed.
One key-requirement from the timeline is that the Minimum Viable Product must be completed by the mid-term. It's a hard requirement, so please plan according to that. It should be hosted on Labs so its easy to gauge progress.

Haritha28 updated the task description. (Show Details)

@Niharika : Thanks for your suggestion. I have added a detailed timeline as per your suggestion and I hope the detailed timeline would give an idea that the MVP would be completed by mid-term.

Hi @Haritha28 just a gentle reminder that your proposal needs to be submitted as a final pdf at https://summerofcode.withgoogle.com before March 25th 19:00 UTC. Good Luck!

Thank you for your proposal, but sadly it didn't make it to the selects this time. You are welcome to apply for Outreachy round'13, or GSoC round 14 with the same proposal ( if it still have consensus ) or a new one if elibible. Please notify your siblings below 18 years of age about the Google Code In 2016 ( g.co/gci ) round and add yourself as a mentor for the same, if eligible. Closing the proposal as Declined, see you around in #wikimedia-dev.