Profile Information
---------------------
**Name** : Ayushi Negi
**
IRC nickname on Freenode** : ayushin78
**
Web Profile** : https://ayushin78.github.io
**Location** : Delhi, Indiaio/
Location : Delhi, **India
Typical working hours (include your timezone)** : 10PM TO 5AM (+5:30 UTC) (Adjustable according to the Mentors)
Synopsis
-------------
#### Summary
**About the app:**
The Wikimedia Commons app is an open-source app created and maintained by grantees and volunteers of the Wikimedia community to allow the Wikimedia community to contribute content to Wikimedia Commons. Users can upload photographs taken directly from the app or from their device’s gallery which then goes directly to the organization’s database. Wikimedia commons accept only free content i.e images and media files that are not subject to any copyright. Users can upload multiple images at once and those can then be given various tags specific to them such as category, title and description.
**About the Project:**
The project proposed for this summmer aims at sharing feedback about uploaded photos, educating people about topic & copyright and adding some sort of gamification to drive engagement.
The project will be completed in three phases :-
1) ** Sharing Feedback **
1. Develop a profile activity to let the users access their "profile" by clicking on the icon next to their username in the nav drawer. In this profile page, Display the following stats using [ `urbanecmbot Tool`](https://tools.wmflabs.org/urbanecmbot/commonsmisc/feedback.py?user=username):
- Number of Uploads
- Received thanks
- Number of images used in Wikipedia/Wikivoyage/etc articles
- Number of images that have been edited by someone else (including simple description typo fix and categorization)
- Number of images that have been featured or received other kinds of awards
- Number of Quality Images
- Add the following two stats in profile activity
- Received barnstars if API/tool for that becomes available
- Include negative statistics (Number of Deletion requests/Upload revert rate) with a link to the deletion discussion/reason if possible to get an API for the same.
- Develop an info page which would display the information about each of the stats included in the profile page with titles such as 'What are the quality images' or 'What are the featured Images' etc to let the user know what his stats actually signify.
- Add a button 'Improve your stats' in this info page to connect it with Tutorials so that the User could watch the tutorials again in order to improve his statistics.
- Add the info icon on the toolbar of the pofile page to connect the info page with the pofile dashboard.
2) **Tutorial & Quiz** .
1. Display tutorial again and implement a quiz, for users who have a high upload revert rate
- Develop a series of quiz pages similar to the tutorial pages with simple Questions with two buttons yes/no as answers
- Display the correct answer in a pop up window whenever the user clicks on the wrong button.
- Extend the tutorial with the quiz pages by adding another button (example 'Take the Quiz') next to the welcomeYesButton in welcome_final.xml(Final Tutorial page). Continue the pages to the quiz pages if the user clicks on 'Take the Quiz' or Skip to the contributionActivity if user clicks on 'welcomeYesButton'.
- Explore the available APIs or Tools to find a way to get the upload revert rate
- If the revert rate becomes available, prompt the user with low revert rate to watch the tutorails again and take the quiz by opening a pop up window whenever the user opens up the app. Add options such as 'Watch tutorials' and 'I'll watch them later' in the pop up window. This way, User will be able to know that his stats are alarming with an option to watch the tutorials and also if the user has already seen the tutorials once he can cancel the pop up window by pressing the other option.
3) **Gamification**
- If time permits, Add Gamification to drive more engagement from users as per the discussion available on https://github.com/commons-app/apps-android-commons/issues/85
**Mentors**
- Mentor: @maskaravivek (member, Wikimedia Commons Android app)
- Co-mentor: @josephine_l (project maintainer, Wikimedia Commons Android app). GitHub: misaochan
**Have you contacted your mentors already?**
Yes
**Timeline**
| **Period** | **Task** |
| ---------- | -------- |
| March 22 to April 23 | Continue making contributions and get familiar with the app structure, getting comfortable with the coding standards of the organization, understanding the available APIs/Tools and their workings. |
| April 23 to May 13 | **Community bonding period**: Explore the APIs for fetching the information about the barnstars and the deletion request for determining the upload revert rate. Discuss with the community about the possible sources for this information. Finalize the components to be displayed on the profile board and the required APIs/Tools. |
| May 14 to May 20 | Design the mockups for the Profile dashboard and for the stats info page associated with the profile page. Improve the mockups through community feedback. |
| May 21 to May 27 | Add implementation for all the components on the profile dashboard by adding the functions in `ApacheHttpClientMediaWikiApi` class to call the APIs. Discuss the approach with mentors.|
| May 28 to June 3 | Decide the information which will be displayed in the stats info page. Improve it through community discussion. Populate the info page with the decided text and link the info page to the information icon on the toolbar of the profile page. |
| June 4 to June 10 | Testing and debugging. Improve code quality. Documentation. |
| June 11 to June 17 | Come up with the questions to be asked in quiz pages. Discuss the content for the quiz pages with the community and mentors and improve it with their feedback. Finallize the content for the quiz pages, the content of the pop up window to be displayed when the user clicks on the correct/incorrect answer and any improvement in the tuorial pages through discussion with mentors.|
| June 18 to June 24 | Design the mockups of the quiz pages. Improve the layouts through community feedback.|
|June 29| **Mid-point feedback** |
| June 29 to July 6 | Make improvements based on the feedback received. |
| July 7 to July 14 | Add the functionality of `YES`/`NO` buttons present on the quiz pages with the pop up windows. Change the last page of tutorial by adding a `Take the Quiz` button next to the `WelcomeYes` button. Link the tutorial to the quiz by adding the quiz layouts in WelcomePageAdapter and by making the required chamges in the WelcomeActivity. Add the functionality of the `Improve your stats` button present on the stats info page by linking it to the tutorial pages.|
| July 15 to July 22 | If the Api/tool for the upload revert ratio becomes available, Discuss the approach with mentors on how to use this rate to prompt the user to watch the tutorials.|
| July 22 to July 30 | Add a function in the `ApacheHttpClientMediaWikiApi` to fetch the revert rate. Add a function in the `LoginActivity` to check if the rate is greater than the threshold value. Make changes in the `startActivity()` function of the `LoginActivity` to redirect to a pop up window if the rate is greater than the threshold. Implement the pop up to redirect the user to `WelcomeActivity`(Tutorial pages) if the user clicks on `Watch Tutorials` or to the `ContributionActivity` if he clicks on `No, I'll watch them later`.|
|July 31 to 7 August | Testing and debugging. Improve the code quality. Documentation. |
|7 August to 14 August | Complete any lagging work. Final report with phase 1 and phase 2 deliverables. Documentation.|
**Gamification (Stretch Goal)**
- As per the discussion available on https://github.com/commons-app/apps-android-commons/issues/85, Finallize the best approach to add gamification with the help of the community feedback.
- Implement the decided approach for gamification.
- Testing, debugging and Documentation. Wrap up the final report.
**Deliverables**
- A profile dashboard showing stats related to the feedback on images shared by the user
- Info page displaying the information about the stats displayed on profile page
- Improved tutorial pages
- Interactive quiz to enhance the quality of the uploads.
- Functionality to prompt the users with high upload revert rate to watch the tutorials again.
- Light gamification to encourage participation (Stretch Goal)
- Improved documentation and Final report
**Participation**
- I will use the hangouts channel for communication or through emails, as per the mentor’s convenience. Github issue tracker will be used for the community discussion. I’ll use a different branch for each new feature that I will be adding and will keep my master updated with the upstream. I will follow the best practices to write the commits and will keep the commit history clean.
**About Me**
- **Education**
I am a Computer Science undergraduate at Bharati Vidyapeeth's college of Engineering, Delhi. The course work includes Java, C++, Data Structures, Algorithms, Operating Systems and DBMS.
- **How did you hear about this program?**
I heard about Outreachy through a friend of mine, Neha Jha, who got selected in the last round of Outreahy. She encouraged me to apply for this round.
- **Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?**
I don’t have any summer plans other than Outreachy/GSoC So, I will be able to work full time on this project.
- **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)?**
Yes, I am planning to apply for both GSoC and Outreachy with WikiMedia .
- **What does making this project happen mean to you?**
Contributing in an open source project has always been a thrilling experience. The feeling or enjoyment that you get when your patch gets merged is beyond explanation. Moreover, It makes you get out of your comfort zone and gives you an opportunity to work on a real project .
This project focuses on enhancing the experience of users while making media contributions to WikiMedia Commons. I believe that it resonates with the idea of 'let everyone contribute to create something better' and this is what encourages me the most to work on this project. Adding feedback and creating interactive quizes are great ways to improve the user experience as well as to enhance the quality of uploads .
Moreover, Working on this project will not only give me a chance to work under the guidance of experts but also an opportunity to reach a million of users through a few lines of code. Developing something useful for the community imparts an unparalleled sense of contentment and satisfaction.
**Past Experience**
- *** Android Development ***
Developed a Music player [`Symphony`](https://github.com/ayushin78/Symphony/) in android to get myself introduced with Android development. It has all the basic features of a music player.
Developed a Weather App [`Weather Companion`](https://github.com/ayushin78/WeatherCompanion). This Android application fetches the weather conditions of the city using openweatherMap API and displays it on the screen. The user can send the info to their friends using it. The user can have the notifications of their area’s current weather as well as a forecast for the whole upcoming week.
- *** JAVA ***
Have strong foundation in Data Structures and ALgorithms in java.
Developed a simple Tic_Tac_Toe game using java.
Developed an application which simulated bank like transactions with log-in, deposit, withdrawal and transfer facility and also implementing different SQL Locking schemes. Technology Used: Java, Oracle SQL
- *** JSP/Servlets/Hibernate ***
Last summer, While doing an internship with a startup, I got experience to work with jsp, servlets and hibernate.
- *** Git ***
It took me some time to understand the actual power of git. It is not the first time I am contributing to an open source project. I started to work on open source projects two years back and learned how to use git properly through my mistakes.
[`Algo_Ds_Notes`](https://github.com/jainaman224/Algo_Ds_Notes/pulls)
- A collection of all the major Data Structures and Algorithms Articles along with their codes implemented in various programming languages. Ranked 8th in Digital Ocean's hacktoberfest and has more than 400 stars on GitHub.
- I have been involved in this project as one of the code maintainers and as an active contributer since the initial phase of this project.
- This project helped me to learn version control system (Git) and to get introduced to the open source community.
- *** Machine learning and Text summarization ***
Published a review paper titled ``“A study on various techniques for automatic text summarization"`` in IEEE explore, 2017.
Worked on a mini project ``'Twitter Hate Speech Classification using eXtreme Gradient Boosted Decision Trees and LightGBM'``. This project was aimed to compare the traditional text categorization methods that fall within the machine learning paradigm (like SVM, Gaussian NB etc.) with the most recent machine learning algorithms which have become quite popular on the Machine Learning platforms like Kaggle (XGBoost and LightGBM).
Currently, I am working on developing an absractive text summarizer using Recurrent neural networks and attention mechanism.
** Tasks completed: **
https://github.com/commons-app/apps-android-commons/pull/1264
https://github.com/commons-app/apps-android-commons/pull/1204
https://github.com/commons-app/apps-android-commons/pull/1193
** Issues Created **
https://github.com/commons-app/apps-android-commons/issues/1224
https://github.com/commons-app/apps-android-commons/issues/1215