Page MenuHomePhabricator

GSoC 2021 - Project Proposal : Update the front-page of Wikimedia projects
Closed, DeclinedPublic

Assigned To
Authored By
Tsiruot
Apr 2 2021, 4:43 PM
Referenced Files
F34213784: Old-Header.png
Apr 2 2021, 4:43 PM
F34213809: Wikimedia-FolderStructure.png
Apr 2 2021, 4:43 PM
F34213795: Old-Lang_list.png
Apr 2 2021, 4:43 PM
F34213791: Desktop-Search.png
Apr 2 2021, 4:43 PM
F34213786: Desktop-Header.png
Apr 2 2021, 4:43 PM
F34213797: Desktop-Lang_list.png
Apr 2 2021, 4:43 PM
F34213802: Desktop-Footer.png
Apr 2 2021, 4:43 PM
F34213814: Portals Grouping.png
Apr 2 2021, 4:43 PM

Description

Profile Information

Name : Ishan
IRC nickname on Freenode : tsiruot
Email : ishansaini243@gmail.com
GitHub : https://github.com/Ishan-Saini
Medium : https://medium.com/@Tsiruot
Location : India
Timezone : IST (UTC + 5:30)
Typical working hours : 4 PM to 12 AM (UTC + 5:30)

Synopsis

Wikimedia projects are the core of the Wikimedia movement. They aim at helping millions of people around the world gather information and share knowledge with others. Some of these projects include Wikipedia, Wikibooks, Wiktionary, Wikiquote, Wikiversity, Wikinews etc.
Prior to 2016, all of the above mentioned project portals were generated via the scripts on Meta-Wiki but in 2016, Wikimedia Discovery Portal Team modernized the Wikipedia portal after performing several A/B tests. The code was shifted to a git repository.
This face-lift intended to :

  • Decrease bounce rate on the Wikipedia.org portal page
  • Increase amount of searches and click-throughs on the search results
  • Increase click-through to the top 10 language wikis
  • Enhance and promote discovery of languages that are not in the top 10
  • Increase click-through to sister (other) Wikimedia projects

However, at that time, the foundation couldn't provide a similar face-lift to the sister portals (Wikibooks, Wiktionary, Wikiquotes etc.) which are still generated using the scripts on Meta-Wiki.
The aim of this GSOC project is to modernize the sister portals which will allow them to enjoy the aforementioned benefits currently enjoyed by Wikipedia. This will also ensure a common design and logic for all the project portals.

Mentor : Jan Drewniak ( @Jdrewniak )

Have you contacted your mentor already? Yes

Improvements

  • The project will mainly focus on converting sister portal pages into HTML templates so that they can be generated through a single build process provided by Gulp.
  • The whole idea is to provide a face-lift similar to Wikipedia portal. This will be achieved by reusing and improving as much existing handlebars templates as possible.
  • Given below is a comparison between the two situations, before and after improvements.

1. SEARCH BOX

  • Improved dimensions for input area
  • Better language selector
  • Search button with better colour background and dimensions.
Old-Header.png (242×752 px, 35 KB)
Desktop-Header.png (228×748 px, 25 KB)

2. SEARCH RESULTS

  • Addition of thumbnail
  • Better dimensions
Old-Search.png (502×549 px, 66 KB)
Desktop-Search.png (588×591 px, 83 KB)

3. LANGUAGE LIST

  • Nicely ordered, avoiding congestion
  • Addition of language list dropdown
Old-Lang_list.png (799×1 px, 244 KB)
Desktop-Lang_list.png (931×1 px, 232 KB)

4. FOOTER

  • Addition of slogan (a small descriptive text) below a wiki name
  • A footer sidebar
Old-Footer.png (343×1 px, 73 KB)
Desktop-Footer.png (537×1 px, 149 KB)

5. MOBILE VIEW

Mobile-old.png (726×405 px, 103 KB)
Mobile-front.png (731×414 px, 61 KB)

Basic folder structure & Data flow diagram

A folder named common in the src directory will be used to store the resources shared by all the portals.

Wikimedia-FolderStructure.png (542×614 px, 60 KB)

NOTE : This is only a tentative representation and may change after deliberation with the mentor.

Portals to be updated

I’ve divided portals into two groups based on the similarity of the design to the Wikipedia portal and the amount of work required to update them. Group B portals require more efforts than Group A portals and thus, will be updated in later stages.

Portals Grouping.png (482×578 px, 32 KB)

Timeline

1. Community Bonding Period

  • Get familiar with the community and the mentor.
  • Solve bugs/tasks on the workboard.
  • Discuss the directory structure and implementation of the project with the mentor.
  • Read relevant documentations and dive deeper into the codebase.

2. June 7, 2021 - June 13, 2021

  • Make changes in the directory structure according to the discussions and above mentioned diagram.
  • Get all the required image assets from Wikimedia commons and create SVGs (if required) with the help of the mentor.
  • Make the required changes in Gulp build step code in order to accommodate the changes in directory structure.

3. June 14, 2021 - June 20, 2021

  • Generalise the header-logo template and controller file (one portal from Group A will be used to observe and test all the changes)
  • Improve the search experience by generalising the search template and wm-typeahead script.

4. June 21, 2021 - June 27, 2021

  • Go through all the Javascript files responsible for page features and discuss with the mentor for any potential changes.
  • Make the required changes in footer and site-license templates.
  • Add an SVG for Wikipedia logo to be used in other-projects list and add Wikipedia to the same.
  • By now, one of the portals from group A would have been updated.

5. June 28, 2021 - July 4, 2021

  • Continue working on two more portals from group A.

6. July 5, 2021 - July 11, 2021

  • By now, 3 portals from group A would have been updated.
  • Buffer period, complete any left out work.

7. July 12, 2021 - July 18, 2021

  • July 12, 2021 - July 16, 2021 (Phase 1 Evaluation)
  • Start working on the fourth portal from group A.

8. July 19, 2021 - July 25, 2021

  • Complete the work of all the portals from group A.
  • Discuss implementation and other details about group B portals with the mentor.

9. July 26, 2021 - August 8, 2021

  • Complete the work for group B portals.
  • Make final changes in gulp code like removing fetch-meta task etc.
  • Look for some deprecated packages and replace them.

10. August 9, 2021 - August 15, 2021

  • Buffer period, complete any left out work.
  • Continue working on improving the code quality.
  • Update the documentation and data-flow diagram in the docs folder.

11. August 16, 2021 - August 23, 2021

  • Code Submission and Final evaluation

Participation

  • Gerrit will be used for all the changes in source code.
  • Phabricator will be used to manage subtasks and bugs.
  • Will be available on IRC and Zulip for communication in working hours.
  • Will be available on Email outside working hours.
  • Will write weekly progress reports on my Medium page starting from community bonding period.

About me

  • Currently pursuing B.Tech in Computer Science Engineering. I am a second year undergraduate at Jaypee Institute of Information Technology, Noida.
  • I am also a core team member at JIIT Open Source Developers Circle (JODC), the open-source society at my college where we organise events, meetups and hacknights promoting the open source culture.
  • I have always been fascinated by technology. I love working on collaborative projects which create an impact on people's lives and that is one of the reasons why I am inclined towards the open source world. I have used Wikipedia and other Wikimedia projects as a primary source of information for my own projects and assignments. Thus, contributing to this project will provide me with the perfect platform to give back to the community and be a part of the Wikimedia movement.
  • I learnt about Google Summer of Code on Quora( a platform to ask questions and connect with people ) which I follow regularly.
  • I might have a special summer semester ( still not sure about it ) in my college during the duration of this program. Things are quite uncertain in this pandemic therefore, If there will be any changes in my college schedule, the mentor will be informed about it. Besides that, I won't be having any other commitment during the summer.

Past experience

No.TaskPatch(es)Status
1Portals default root language code html lang=mul seems insufficient671118Merged
2Refactor Gulpfile.js tasks into separate files672210, 673772, 674580, 675646In progress
3Search box doesn't show suggestions on focus (wikipedia.org)676014For review
MICROTASKS
1Remove unnecessary Javascript polyfills from portals repo672037Merged
2Remove IE<9 CSS hacks from portals CSS672011Merged
3Add a pre-commit hook to run npm run test673768Merged
4Update/Fix npm dependencies for wikimedia/portals.git (Replaced gulp-cssnano package)676549Merged

Any other info

  • This is my first time applying for GSOC. I am also not applying for any other project/organisation this year.
  • I am completely fine working with a mentor who is several time zones away.
  • Link to the proposal on Google Docs - GSoC 2021 Proposal

References

https://www.mediawiki.org/wiki/Wikipedia.org_Portal_Project
https://meta.wikimedia.org/wiki/Our_projects

Event Timeline

Hey @Jdrewniak, this is my draft proposal for the project under GSoC 2021. Kindly provide your valuable feedback for the same.

Hey @Tsiruot

Thanks for showing your interest to participate in Google Summer of Code with Wikimedia Foundation! Please make sure to upload a copy of your proposal on Google's program site as well in whatever format it's expected of you, include in it this public proposal of Phabricator before the deadline i.e April 13th. Good luck :)

GSoC application deadline has passed. If you have submitted a proposal on the GSoC program website, please visit https://phabricator.wikimedia.org/project/view/5104/ and then drag your own proposal from the "Backlog" to the "Proposals Submitted" column on the Phabricator workboard. You can continue making changes to this ticket on Phabricator and have discussions with mentors and community members about the project. But, remember that the decision will not be based on the work you did after but during and before the application period. Note: If you have not contacted your mentor(s) before the deadline and have not contributed a code patch before the application deadline, you are unfortunately not eligible. Thank you!

@Tsiruot ​We are sorry to say that we could not allocate a slot for you this time. Please do not consider the rejection to be an assessment of your proposal. We received over 100 quality applications, and we could only accept 10 students. We were not able to give all applicants a slot that would have deserved one, and these were some very tough decisions to make. Please know that you are still a valued member of our community and we by no means want to exclude you. Many students who we did not accept in 2020 have become Wikimedia maintainers, contractors and even GSoC students and mentors this year!

Your ideas and contributions to our projects are still welcome! As a next step, you could consider finishing up any pending pull requests or inform us that someone has to take them over. Here is the recommended place for you to get started as a newcomer: https://www.mediawiki.org/wiki/New_Developers.

If you would still be eligible for GSoC next year, we look forward to your participation