===Profile Information
Name : Tanvi Dadu
Email: tanvidadu1998@gmail.com
University: Netaji Subhas Institute of Technology, affiliated with Delhi University
IRC nickname on Freenode: tanvidadu
Github Link: https://github.com/tanvidadu
Other Communication Medium: Gitter, Slack, Google hangouts
Location (country or state) : New Delhi , India (UTC +5:30)
Typical working hours (include your timezone): Between 8 pm to 4 am UTC +5:30
===Synopsis
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons.
The project 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 implemented in two phases:
1) ** Feedback **
- 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
- Received barnstars
- Received thanks if the feature becomes available on Commons
- Add Gamification and ensure no negative statistics like Number of deleted images should be present (must be with a link to the deletion discussion/reason)
2) **Tutorial**
- Display tutorial again and implement a quiz, for users who have a high upload revert rate
| Period |
===Deliverables
| Period | Task | Deliverable |
|Community Bonding | Getting Familiarized with app structure, Wikimedia Api and Community.Go through Documentation once. Discuss the potential strategy with mentors.| API to be used Confirmed.
| May 14 - May 20 | Develop Interactive UI Mocks and get feedback from the community.Implement a rudimentary structure of feedback screen | UI mocks,Commits|
| May 21 - May 27 | Implement the async Api call in classes present in mwapi.Display the information fetched| Commits/ screenshot
| May 28 - June 3 | Depending upon the discussion on issue #85, implement the strategy to calculate reputation/points. Start implementing the gamification feature decided upon discussion | Commits/Screenshot|
| June 4 - June 11 | Complete the gamification feature. Polish the UI | Commits/screenshot
| June 12 - June 19 | Writing Unit test as well as Integration test for feedback module. Testing and debugging. Code cleanup | Commits, bug fixes, clean code
| June 20 - June 26 | Final Testing and bug fixes. Complete backlog, if any. If allowed , Release the latest version app | App deployed with no major bug fixes
| June 27 - July 3| Discuss questions and tutorial to be added with community and mentors.Come up with the mock-ups of the UI of the quiz module.Investigate api for getting the number of images reverted- used as a threshold for quiz and other relevant ways| UI mockups, best strategy confirmed
| July 4 - July 10 | Wire up the api and fetch results i.e. refactor the code of mwapi accordingly or get the information from notifications| commits
| July 11 - july 17 | Implement Tutorial and polish it’s UI| Commits/screenshot
| July 18 - july 24| Implement Quiz and polish it’s UI. Reset user's counter to avoid repetitive notification for quiz | Commits/screenshot
| July 25 - July 31 | Writing Unit test as well as Integration test for Quiz module. Testing and debugging. Code cleanup | Commits, Bug fixes, clean code
| August 1 - August 7| Final Testing and bug fixes. If allowed , Release the latest version app | App deployed with no major bug fixes
| August 7 - August 14| Updating Documentation and guidelines. Code Cleanup. Fixing other issues/ bugs if time| Up-to-date Documentation and wrap-up-report
===Participation
# Working on Separate branch on git and regularly creating pull request once a feature has been implemented.
# Online on IRC in my working hours ( 8pm to 4 am UTC +5:30)
# Regular feedbacks and reviews from community as well as mentors
# Can be contacted via hangouts, mails in my non working hours
Describe how you plan to communicate progres # Flexible with working hours and ask for help, where you planwilling to publish your source code, etcshift or extend them.
# Update my weekly progress on my blog (https://medium.com)
===About Me
Tell us about a few:
- Your education (completed or in progress)**Your education (completed or in progress)**
I am a sophomore pursuing BTech in Computer Engineering from Netaji Subhas Institute of Technology affiliated to Delhi University. I am one of the board member of CSI NSIT (Computer Society of India), official tech society of my college. During my first year, I was heavily involved in competitive coding and as a result have strong base in algorithm and data structure. I have a keen interest in Android Development and am well versed with git/github.
- **How did you hear about this program?**
- How did you hear about this program?A senior of mine Mansimar Kuar, encouraged me to participate in this program.
- **Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?**
- Will you have any other time commitmentsSince this program is during my Summer Vacations, such as school work, another job,I have no prior commitment and am willing to devote my whole attention to this project.
-** We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planned vacationing to apply to both programs and, etcif so, during the duration of the program?with what organization(s)?**
- 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 soYes, with what organization(s)?I am planning to apply for GSOC as well.
- **What does making this project happen mean to you?**
===Past Experience
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**Android :**
#RentRobes: It is an android based application which provides a platform for renting and selling of second-hand clothes. Essentially, the idea is to provide users with the facility of selling branded second-hand clothes to the company and renting branded clothes both brand new and second-hand from the company. This is a basic implementation of a start-up idea which is currently evolving.
Through this project I learned async api calls, serializable and parceable objects, importance of UI/UX as well as material design, realtime database and UPI payment gateway integration.
(https://github.com/tanvidadu/RentRobes )
#DermaHack: The app incorporates image recognition to provide an accurate diagnosis of the skin disorder without any biases. This app will allow the users to narrow down the disease depending upon the images of the affected area. According to the disease detected, the app will provide some suggestion to prevent the disease from spreading further along with the contact of the nearest dermatologist that the patient can visit. To make user experience more interactive it uses chatbot interface to interact with them. The bot was wriiten in python using nltk and deployed on heroku. The app interacts with bot using async api calls. This app was built in 24 hrs in a hackathon.
Through this project I learned async api calls using Volley, integrating Google Maps API and fetching users geo-coordinates, basics of NLP as well as the UI design to implement chatbot interface.
(https://github.com/PikkaPikkachu/DermaHack )
**React Native :**
#Currency Converter: It is a mobile app that can work cross platform on both android and ios. It can be used to convert one currency to another. Through this app I learned the basic of react-native libraries, redux, react-navigation and redux saga.
(https://github.com/tanvidadu/CurrencyConverter )
#Swipe Cards: It a small standalone reusable component that I implemented in react-native. They are a clone of Tinder swipe cards with proper animation - swipe left and swipe right.
#MapView: It a small standalone reusable component that I implemented in react-native to fetch the user current geo-coordinates and display the country it is present in.
**C++ :**
#TextEditor: I am also attempted to make my very own text editor. Its written in C++ language and provides user with functionality to add text, edit text as well features like Undo, Redo, Cut, Copy, Paste, Backspace, Replace, Replace All and Find. These features are implemented via stack, hashing and Recursion. Stack is used to store previous history and hashing is used to map different functions to the their respective keys on keyboards through ascii value. Also Recursion is used to move between words and lines. It’s still in development phase and I am currently working to reduce the processing time used to implement the features.
(https://github.com/tanvidadu/TextEditor.git )
**I have also contributed in other FOSS projects like : Paintroid (Catrobat) , Android( NextCloud). **
===Micro-Contributions
**Pull requests: **
https://github.com/commons-app/apps-android-commons/pull/1251( merged) : Added an option to skip tutorial in beta version of the app. Knowledge of all the flavors, information on implementing flavor specific was required along with the information of codebase.
https://github.com/commons-app/apps-android-commons/pull/1097( merged): Hide keypad when user clicks outside the editView in Commons Activity.
https://github.com/commons-app/apps-android-commons/pull/1099( merged): Ensures the categories start with Capital letter.
===Any Other Infohttps://github.com/commons-app/apps-android-commons/pull/1102( merged): Added a message to login screen of the beta product flavour for the user is logging in to the beta servers
Add any other relevant information such as UI mockups,https://github.com/commons-app/apps-android-commons/pull/1281( open) : When no description is found the subtitle is empty, rather than writing "no description found" to it.
https://github.com/commons-app/apps-android-commons/pull/1285 (open) : Added TextView in AboutActivity which links to https://translatewiki.net/w/i.php?title=Special:Translate&group=commons-android-strings&filter=!translated&action=translate
https://github.com/commons-app/apps-android-commons/pull/1300 (open) : Added the functionality to pinch zoom in upload activity.
**Issues Opened: **
references to related projectshttps://github.com/commons-app/apps-android-commons/issues/1041 (open): The keypad in the Commons Activity overlaps with the Wikimedia Commons Links .
https://github.com/commons-app/apps-android-commons/issues/1040 (open) : The user experience will be improved if keypad is closed/hidden each time the user clicks outside the EditText , a link to your proof of concept code,in the Common Activity.
https://github.com/commons-app/apps-android-commons/issues/1306 (open) : In aboutActivity there is TextView with id about_uploads_to which has no implementations in the code. etcIt has not been used anywhere.