===Profile Information
**Name**: Raymond Olisaemeka Ndibe
**Timezone**: UTC+1
**Web Profile**: https://raymond-ndibe.netlify.com
**Resume**: https://drive.google.com/open?id=1yTsj7ICGBLhVi7ZW-sZPRUCdXOPhhc1I
**Github**: https://github.com/NdibeRaymond
**Location**: Nigeria
**Working Hours**: 10 am - 3 pm UTC+1, 8 pm - 12 am UTC+1
===Synopsis
WikiContrib is a tool for community members to visualize their technical contributions within a specified time range. One of the use cases for this tool is when Wikimania scholarship committee is trying to evaluate scholarship applicants based on their contributions to decide who qualifies for the scholarship. Currently, the tool gathers statistics from Phabricator and Gerrit. This proposal is about improving the tool further by working on the following features:
* Counting technical contributions made to Github repositories under Wikimedia and other popular projects that
are not necessarily under the Wikimedia account (e.g. wikiEduDashboard, apps-android-commons, etc).
* Counting technical contributions made by a user on wiki such as modules and templates, user scripts and
gadgets
* Counting any other contributions that can be measured as per the technical contributor's map
* Fetch the best user avatar and about information from the possible venues and display it alongside the
contributions statistics.
====Why Is This Necessary?
The tool in its present state only helps to visualize contributions made through Gerrit or Phabricator. Wikimedia Github account has 2200 repositories under it and any contribution made to any of those repositories is currently not being covered by WikiContrib; the same goes for technical contributions made by a user on wiki such as modules and templates, user scripts & Gadgets, etc. The problem with this is that users making contributions to projects on Github or on wiki are not properly represented, if they apply to Wikimania scholarship and this tool is to be used for candidate evaluation, they won't stand a chance of being selected. The proposed features will help solve these issues.
====How Will The Proposed Features Benefit Wikimedia Projects?
This tool was developed because among other things, it could also help Wikimedia project maintainers discover contributors who have the potential of becoming long-term contributors and help them grow. Right now, the tool is only partly fulfilling that purpose. The proposed features will further broaden the scope of this tool, accounting for contributions made to more than 2000 repositories previously unaccounted for and bringing many more potential long-term contributors under the radar of project managers. This will help ensure that the projects will have enough dedicated contributors to keep on maintaining them in the future.
====Do You See Any Risks/Concerns Involved In implementing The Planned Features?
From my analysis so far, I couldn't see any risks that could result from implementing the proposed features
**Mentor(s)**: @srishakatux @Rammanojpotla @Tuxology
- Have you contacted your mentors already? Yes
===Deliverables
| Period | Task
| ----- | -----
| Apr 27 - May 5 | **community bonding**. Get to know more about the community and its members. Continue fixing new issues.
| May 5 - May 12 | Gather information, ask questions about the confusing parts of the features to be implemented. Create plans and designs of how the finished implementation would look and work. Share the designs with the mentors and get feedback
| May 12 - May 23 | Start Working on the feature to count contributions on Wikimedia account on GitHub
| May 23 - Jun 2 | Start working on the feature to count contributions on other popular repositories that are not under Wikimedia account, like WikiEduDashboard
| Jun 2 - Jun 9 | Build the UI to display the additional Github contributions that would be coming with the backend data and ensure it doesn't affect the existing UI
| Jun 9 - Jun 19 | **Feedback and wrap up of the Github contributions counting phase**
| Jun 19 - Jun 26 | Start working on the feature to count technical contributions by users on-wiki for modules and templates
| Jun 26 - Jul 3 | Start working on the feature to count technical contributions by users on-wiki for user scripts and gadgets, etc
| Jul 3 - Jul 10 | Start working on the features to count any additional measurable contributions according to the technical contributor's map
| Jul 10 - Jul 19 | Build the UI to display the additional on-wiki technical contributions that would be coming with the backend data and ensure it doesn't affect the existing UI
| Jul 19 - Jul 26 | **Feedback and wrap up of on-wiki contributions counting phase**
| Jul 26 - Aug 2 | Modify the backend to fetch best user avatar and about information from the possible sources and add it to the data being returned from the backend
| Aug 2 - Aug 9 | Build the UI to display the additional user information like avatar coming from the backend
| Aug 9 - Aug 18 | **Feedback and wrap up of the whole project**
===Other Deliverables===
* Blog post on my progress every week
* Regular communication with my mentor(s) and other community members
===Participation
Describe how you plan to communicate progress and ask for help, where you plan to publish your source code, etc
* I will continue using my existing fork of the wikiContrib repository to upload changes made and create pull-requests for mentor(s) to review and merge
* I will be online on IRC in my working hours (10 am - 3 pm UTC+1, 8 pm - 12 am UTC+1) to collaborate with mentors and
community members.
* I will use Phabricator as well as Github for managing bugs and subtasks.
* I will be available on Gmail to be contacted when needed in the non-working hours.
===About Me
**Your education (completed or in progress)**
I am a Google Africa Developer Scholar yet to take my certification exams. I Obtained a Diploma in electrical / electronics Engineering in 2016 from DonBosco Institute of Technology Anambra Nigeria.
**How did you hear about this program?**
This is my first Outreachy application and I heard about it from my friend and mentor who inspired me to become a developer. I registered because I saw that Outreachy is an equal opportunity program, where your race, ethnicity, financial status, gender identification, formal educational background and the other things that normally matter in the society I live in doesn't matter and doesn't decide if you are selected or not.
**Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?**
I am free from any time commitment throughout the duration of the internship
**What does making this project happen mean to you?**
From a career perspective, making this project happens means I finally get a chance to work on something really important and not just to-do apps and a few other hobby projects. It means I finally get to build something that actual people are going to use. Everyone wants a chance to be part of something bigger than themselves but not everyone gets to achieve that desire. Working on something as important as this will really be a boost to the career of a beginner like me. I have been having a hard time landing a job as a software developer, this project means I get to prove I can work on a project independently while working on a project that actual people are going to use.
Financially, this project is exactly what I need to kick-start my life. I left the little job I had to become a developer and it has been rough ever since. The funds from this internship will enable me to further my education. It will help me purchase software development courses I need to improve myself, attend important software conferences to network and connect with fellow developers and to start working towards obtaining a degree.
===Past Experience
I am a beginner mobile web specialist and associate cloud engineer with experience in HTML, CSS, Javascript, Python, Git, DialogFlow, Google cloud. Prior to this program, I have developed a number of React and Django based web-apps which can be found in the "Projects" section below. The full list of my projects can be found on my [personal website](https://raymond-ndibe.netlify.com).
I am a member of Open-source Community Africa (OSCA), Google Developer Group (GDG) and Andela Learning Community
=====Skills
* Languages: Python, Javascript
* Frameworks: Django, Bootstrap
* Web Technologies: HTML, CSS, SASS
* Version Control Systems: Git
* Databases: SQLite, Postgresql, MongoDB, Firebase
* Libraries and tools: Django Rest Framework, React, React-Redux, Selenium, Kubernetes
* Cloud Platforms: Google Cloud, Heroku, DigitalOcean, Pythonanywhere
====Projects
[Tillate](https://tillate.herokuapp.com/)
A React based event ticket selling app.
Note: This project is hosted on heroku free account so will take some time to restart server after 30mins of no visit.
[Huddle Lite](https://ndiberaymond.github.io/huddle/)
A Single Section Modern Landing Page Design Coding Challenge
[Diahomes](https://diahomes.com/)
A Django based property listing site
[WriteSpace](http://ndiberaymond.pythonanywhere.com/posts/all/)
WriteSpace is my personal blog project. (I will be cleaning it up and repurposing it for the purpose of Outreachy project if I am ever selected)
[Google Home Page Mockup](https://googlesearchsitemockup.herokuapp.com/)
Google Search Site Home Page and Result Page Mockup.
Note that this is a heroku hosted project and that loading might take some time if the site hasn't been visited in the past 30mins
====Open-source Contributions====
**Google Web Fundamentals Website**
Google web fundamentals is a free and open-source project with the goal of educating people on how to build modern websites with best practices in mind.
| Status | Issue | PR Title | PR
| ------- | ------ | -------- | ----
| Merged | [#123](https://github.com/google/WebFundamentals/issues/8362) | Fixed error in url | [#8367](https://github.com/google/WebFundamentals/pull/8367)
| Merged | [#8330](https://github.com/google/WebFundamentals/issues/8330) | Fixed Typo in Full Screen Video method | [#8368](https://github.com/google/WebFundamentals/pull/8368)
| Merged | [#8359](https://github.com/google/WebFundamentals/issues/8359) | Fixed a typo | [#8366](https://github.com/google/WebFundamentals/pull/8366)
**WikiMedia WikiContrib Tool**
* https://github.com/wikimedia/WikiContrib/pull/170
* https://github.com/wikimedia/WikiContrib/pull/135
* https://github.com/wikimedia/WikiContrib/pull/129
* https://github.com/wikimedia/WikiContrib/pull/128
* https://github.com/wikimedia/WikiContrib/pull/179
* https://github.com/wikimedia/WikiContrib/pull/177
* https://github.com/wikimedia/WikiContrib/pull/120
* https://github.com/wikimedia/WikiContrib/pull/159
* https://github.com/wikimedia/WikiContrib/pull/119
* https://github.com/wikimedia/WikiContrib/pull/118
* https://github.com/wikimedia/WikiContrib/pull/113
* https://github.com/wikimedia/WikiContrib/pull/109
===Post-Internship
There are still a number of features that still need to be implemented like https://github.com/wikimedia/WikiContrib/issues/58 and https://github.com/wikimedia/WikiContrib/issues/23. I will be working on some alongside the features in this proposal if selected for this internship. The ones that require serious modification to the codebase and app structure will be postponed till after or towards the end of the internship depending on how fast I was able to finish implementing the features in this proposal. And if I wasn't selected, i'd still go on and fix issues already assigned to me