==Profile Information
Name: Awah Nadege Tayebatu
IRC nickname on Freenode: tybanash
Web Profile: https://github.com/tybanash
Location: Cameroon
Typical working hours: 2:00 AM to 5:00 AM and 4:00 PM to 11:00 PM
==Synopsis
===Project Summary
The [[ https://www.mediawiki.org/wiki/API:Main_page |MediaWiki action API ]] is a RESTful web based API which allows the performance of wiki-actions such as searching, creating and editing wiki pages and acquiring wiki meta-information. The aim of this project is to improve the documentation of ~20 top 100 most viewed MediaWiki action API pages on-wiki. This will be carried out by doing the following:
- Updating the documentation of the API pages to follow the [[ https://www.mediawiki.org/wiki/API:Documentation_template | documentation template ]].
- Contributing code samples to illustrate the use of the different API modules.
In addition, a bot will also be developed which mass edits sample codes from the [[https://github.com/wikimedia/MediaWiki-Action-API-Code-Samples|MediaWiki API demos repository]] to the corresponding API page on mediawiki.org.
===Project Benefits
Due to the fact the documentation of the wiki pages will be improved to follow the documentation template, it will lead to a coherent documentation of the API pages. The improved documentation together with the sample codes will help new users and contributors learn about the API and understand it faster. The bot on the other hand will help eliminate the time spent on implementing any changes made on the sample code files in the repository to the API wiki pages and vice-versa hence helping to maintain the API.
=== Possible Mentor
Jerop Brenda @jeropbrenda
- **Have you contacted your mentor already?** Yes, I have been communicating with my mentor throughout the application process.
==Deliverables
===Timeline
==== Prior to Internship Period
# **Before the accepted interns are announced: 4th to 26th November**
- Finalize my pending contribution: I am presently awaiting review for my third contribution. So, during this time I will receive feedback and implement necessary changes.
- Work on other API and documentation related tasks on Phabricator.
- Go through the API app tutorial section inorder to know the differnt modules that are used in these applications as this will help me in filling the Demo app section of the documentation template. It will also help me improve my skills in Pythn, Flask, JavaScript and more.
# **After interns are announced: 26th November to 3rd December**
- Use [[ https://tools.wmflabs.org/massviews/?platform=all-access&agent=user&source=category&target=https%3A%2F%2Fmediawiki.org%2Fwiki%2FCategory%3AMediaWiki_action_API&range=latest-20&subjectpage=0&subcategories=1&sort=views&direction=1&view=list | Massviews Analysis of pages under MediaWiki action API category ]] to determine the API pages that need improvement and do an evaluation of what has to be done on them.
- Work with the project mentor to finalize my project timeline and set evaluation feedback periods.
- Discuss about my idea of the bot.
- Create a blog.
====Internship Period
# **3rd December to 4th February (9 weeks)**: Work with 2 to 3 API pages per week in order to have improved at least 20 pages at the end of this time frame. This will be carried out by doing the following:
- For each module, I will write the sample code and update the readme files while rewriting the API page in my sandbox using the documentation template. I will also create a sub page of the sample code and transclude to my sandbox.
- The next step will be to create a new branch on git bash, add the changes, commit and push them and create a pull request on github.
- Submit my sandbox page for review.
- Implement any changes requested.
- After pull request is merged, I will paste the contents of my sandbox to the API page.
#**4th February to 3rd March (4 weeks)**
-Work on bot.
==Participation
- Throughout the internship, I will communicate with my mentor through the [[ https://wikimedia.zulipchat.com/#narrow/stream/mediawiki-api-documentation-project | project's public chat on Zulip ]] and by any other means she finds convenient to discuss my work progress and challenges.
- When I face difficulties, I will also use the [[ https://discourse-mediawiki.wmflabs.org/ | Wikimedia Developer Support ]] channel to ask for help.
- I will use my [[ https://meta.wikimedia.org/wiki/User:Awah_Nadege | MediaWiki user page ]] and my blog to write about my work. This will be done weekly.
- My sample codes and bot will be hosted on github.
- I will submit my evaluation on time and follow any guidelines which will help me get involved in the community.
==About Me
I graduated in 2017 with a BSc degree in Geology from the University of Buea. During my final year, I had a friend who was a computer engineering student in that same university. She was an advocate for women in tech and also encouraged more women to take up technology. She always invited me for their events but i never honored any of her invitations. This was because I felt I will be lost and bored since I was not even offering a technology major in school. One day I took a bold step and attended one of their events. It was the International Women's Day tech style organised by Women Techmakers Buea. It was during this event that I got to know about 'open source'. I had been a user of Wikipedia and Mozilla for years and never knew they were open source projects. During that event, I got to know about many open source organisations but the one that struck me the most was Wikimedia. This was because of the fact that I discovered the organisation had other projects which people without programming skills could get nvolved in. Few weeks later, I joined the organisation and attended a few events like Wiki Loves Women Buea which helped me gain skills and I was able to contribute to Wikipedia, Wikidata, Commons and Wikivoyage.
When I graduated from the university, I was unable to secure a descent job with my degree. At the same time I was amazed at the number of technology jobs that were advertised on job sites daily and the lack of competent people to apply for the jobs especially women. This cause me to have a rethink of my career path and I decided to give techonlogy a try. I started taking coding courses online and I even took part in the Google African Challenge Scholarship . It was thanks to this scholarship that I was able to learn the basics of HTML, CSS and JS. My learning journey so far has been a challenging one. There were so many times when I closed m computer in frustration and doubted whether this path was meant for me. This made my learning inconsistent. In July this year, I read about Outreachy from a past intern's block. After getting to her to know more, she convinced me to apply for this round and explained how beneficial the internship would be for me.
- **Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?** I will not have any other commitments.
- **We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?** I am not eligible for Google Summer of Code because I have already completed my university program.
- **What does making this project happen mean to you?** Since I joined the Wikimedia Foundation, I had always wanted to contribute to MediaWiki but the lack of skill set was a barrier. This application process already has helped me make contributions and also the coding and documentation skills which I will gain throughout the internship will also enable me to make more contributions in future. It also gives me joy knowing that I might be opportune to take part in a project which is used by so many people. This project will boost my confidence which will hep me as I groom myself for a programming career.
==Past Experience
===Contributions to Wikimedia
====Microtasks
# **API:Contributors**:
- I improved the documentation of this API page and contributed sample code to illustrate how the module is used to view the list of logged-in contributors and the count of anonymous contributors to a page. The [[ https://www.mediawiki.org/wiki/API:Contributors | documentation ]] and [[ https://github.com/wikimedia/mediawiki-api-demos/pull/179 | sample code ]] have been `approved` and `merged` respectively.
- With the help of this task, I was able to learn how to use Phabricator and also gained understanding about API particularly the REST API type and its uses. I also learnt about the input and output formats of Wikimedia API. I learnt how to create and use a sandbox page, how to do source editing and work with translatable wiki pages. I also learnt how to use templates. I was also able to improve my skills in github and git bash. The sample codes for the API pages are in JavaScript, python and php, so to be able to accomplish this task, I had to take some tutorials and learn the basics of php and python because I was a newbie in these languages.
# **API:Rsd**:
- I improved the documentation of this API page and wrote sample code to show how the module is used to export an RSD schema. The [[ https://www.mediawiki.org/wiki/API:Rsd | documentation ]] and [[ https://github.com/wikimedia/mediawiki-api-demos/pull/189 | sample code ]] have been `approved` and `merged` respectively.
- I was able to do this task with the help of the skills learnt while doing my first contribution. In addition, I also learnt about Really Simple Discovery (RSD) and found out that the output of this API page is in xml which is different from the JSON format recommended in MediaWiki which the other API pages produce.
====Other API and Documentation Tasks
# https://phabricator.wikimedia.org/T203025:
- I documented the return values of [[ https://www.mediawiki.org/wiki/API:Edit | API:Edit ]]. I was able to learn about API:Edit, I studied the ApiEditPage.php file which helped me know the possible scope of outputs for this API. I later documented the possible return values and their structure in my sandbox. This task gave me exposure to the source code and. I also learnt about creating and editing redirect pages and got to know how an extension like ConfirmEdit can add to the output data of this API. I used the documentation style guide form MediaWiki to write the documentation. I have submitted my work for review.
====Contributions to other Wikimedia Projects
- **Wikipedia**: My work so far on Wikpedia has been to increase the female content of popularCameroonian women on Wikipedia. So far, I have used visual editing to create pages such as [[ https://en.wikipedia.org/wiki/Lynda_Raymonde | Lynda Raymonde ]] , [[ https://en.wikipedia.org/wiki/Grace_Decca | Grace Decca ]] , [[ https://en.wikipedia.org/wiki/Coco_Argent%C3%A9e | Coco Argentée ]] , [[ https://en.wikipedia.org/wiki/Janet_Fofang | Janet Fofang ]] and other minor edits.
Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them. Describe any open source projects you have contributed to as a user and contributor (include links). If you have already written a feature or bugfix for a Wikimedia technology such as MediaWiki, link to it here; we will give strong preference to candidates who have done so - **Commons**: My contributions to Commons can be found [[ https://commons.wikimedia.org/wiki/Special:Contributions/Awah_Nadege | here ]].
- ** Wikidata**: My contributions to Wikidata can be found [[ https://www.wikidata.org/wiki/Special:Contributions/Awah_Nadege | here ]].
- **Wikivoyage**: My contributions to Wikivoyage can be found [[ https://en.wikivoyage.org/wiki/Special:Contributions/Awah_Nadege | here ]].
===Other Projects
==Any Other InfoI have done some projects while taking on courses. My projects have mainly been in HTML, CSS and JavaScript.
# [[ https://github.com/tybanash/Animal-trading-card-project | Animal trading card ]]: This project was my first coding project. It was done during the Google African challenge scholarship 2018. I used HTML and CSS to write a trading card that had information about my favorite animal. I created the web page from the design prototype. With the help of this task I was able to practise coding in JavaScript and JQuery. I learnt how to define variables, access the DOM using methods of the document object, Declare functions and attaching them to DOM objects as event listeners and writing nested loops and using loop variables
# [[ https://github.com/tybanash/PIXEL-ART-MAKER-PROJECT | Pixel Art Maker ]]: You’ll build a single-page web app that allows users to draw pixel art on a customizable canvas! Check out this example:You'll be given starter code, including HTML and CSS, to build the application. You'll write JavaScript code that lets the user to create a grid of squares representing their design, and apply colors to those squares to create a digital masterpiece!. With the help of this task I was able to practise coding in JavaScript and JQuery. I learnt how to define variables, access the DOM using methods of the document object, Declare functions and attaching them to DOM objects as event listeners and writing nested loops and using loop variables
Add any other relevant information such as UI mockup # [[ https://github.com/tybanash/Nadege-s-Corner | Nadege-s-Corner ]] n this activity, you'll create an HTML document listing your favorite books, foods, songs, and movies. You'll also add CSS to change the styles of the page, using colors, references to related projectsfonts, a link to your proof of concept code,nd effects of your choice!
# [[ https://github.com/tybanash/Booked-Up- | Booked-Up- ]] which will allow users to keep track of the books they are reading/have read. etchttps://github.com/tybanash/Booked-Up- Learn Programming With JavaScript.