**Name**: Rostyslav Khoptiy
**Email**: ros65535@gmail.com
**Freenode Nickname:** ros65536
**Personal Website**: https://rostyslav-khoptiy.herokuapp.com/
**Resume **: [[ https://drive.google.com/file/d/0B4zhg2FOfUWPejE4Z3pJa1RaZUk/view?usp=sharing | PDF ]]
**Github**: https://github.com/Ross65536
**Location**: Portugal
**Working hours**: 12h00-21h00 (GMT+1)
**GSoC Proposed Task**: [[ https://phabricator.wikimedia.org/T188877 | Wikimedia Commons app: Allow users to browse Commons from app ]]
I'm applying to develop for the existing proposal for the Wikimedia Commons Android application. Most users nowadays use their phon**Synopsis:**
Most people nowadays use their mobile devices to access the internet and to take pictures, therefore improving the Wikimedia Commons Android application with search features should incentivize more users to upload higher quality images to the platform. while making it possible to search the existing pictures using an Android device.
**Mentor**: @Nes,
**Co-Mentor**: @Nicolas_Raoul
The first week or two I would get familiar with the existing codebase and tools**Timeline**
The [[ https://phabricator.wikimedia.org/T188877 | referenced project proposal ]] lists a possible division of the project into items, which are here referenced by their numbers.
| Period | Task |
| April 23 - May 14 | Community Bonding: Discuss with mentors and the community the requirements of the project. Experiment with and learn the application codebase and tools used. Familliazire with and debug the scrolling list of recently featured images (task 1). |
| May 14 - June 11 | Develop a simple "minimum viable product" implementing the functionality for searching by images using the Mediawiki API and a basic UI (tasks 2, 3, 4) |
| June 11 - June 15 | GSoC 1st Evaluation. Write documentation, tests, fixing bugs, release a prototype (task 5) and discuss with the community the progress so far |
| June 15 - July 9 | Implement missing features from previous code phase. Add search by categories and subcategories and the corresponding UI (tasks 6, 7, 8) |
| July 9 - July 13 | GSoC 2nd Evaluation. Write documentation, fix bugs, release a prototype (task 9) and discuss with the community the results so far. |
| July 13 - Aug 6 | Finish any missing features, improve code, documentation and UI. Improve test coverage. Release a working build of the application. If time allows add feature to show the best images first for each category/subcategory (task 10). |
| Aug 6 - Aug 14 | GSoC final evaluation. Submit a working application with the features that could be developed unitl this point. Improve code and documentation. |
| Aug 14 - Aug 22 | Continue working on the project with the mentor's approval. |
**Code Hosting:**
Since the original project is hosted on github I would either fork the project and develop the features on a new branch to be later merged into the main repository or I would create a new branch for the project and then merge when the code is accepted by the mentors. I could add the mentors to my fork/branch so they can provide me insight, and in the next three or more weeks I would try to add the search functionality to the app while writing the necessary unit tests and documentation.code-review, Afterwards I would try to improve the feature further or implement any other features after discussing with the mentors.
Since the project is hosted on github I would fork the project and submit a pull request when the feature is implemented or I can create a new branch for the project and then merge when the code is accepted by the mentorsetc when appropriate.
**Communication:**
I can communicate with the mentors and the community on this website and on github about the project and the features to implement. I canFurther communicate with the mentors on the forked repository by writing wiki articles to document progress and useion can be done by email or IRC to ask the mentors for help, code review, etc.
I can also write blogposts (on my website or elsewhere) about my weekly progress if deemed necessary by the mentors/community.
**About Me:**
I’m currently finishing my 3rd year of a 5 year degree ofin “Informatics and Computing engineering” at the Faculty of Engineering of the University of Porto (FEUP).
I'm attending classes and have exams until around the 29th of June (end of exam period), During the summer I’m free of any commitments so I should be able to dedicate all my time to this projecttime after which I will be able to fully dedicate myself to the completion of this project since I will have no further commitments during this time period.
This project is really interesting for me since I’ve been meaning to improve my programming skills by working on a real life software project and since I have yet had little exposure to developing for open source projects this would be a great opportunity for growth and learning. This project is really interesting for me since I’ve been meaning to improve my programming skills by working on a real life software project and since I have yet had little exposure to working in open source projects this would be a great opportunity for growth. I’m only looking to apply through the GSOC program.
I’m only applying through the GSoC program.
**Relevant Experience:**
I have already developed applications for the android platform, using both java with the libgdx framework ([[ https://play.google.com/store/apps/details?id=ros.joao.rjtorcher&hl=en | store listing ]]) and C# with Xamarin ([[ https://play.google.com/store/apps/details?id=com.Ros.Sound_Mixer&hl=en | store listing ]]). Both of these projects taught me how to write OO oriented code, how to make it testable, how to design UI for mobile and how to develop and deploy for the android platform. I have also had the opportunity to learn how to write documentation with javadocsfor my code and more importantlyalso how to use a unit testing framework (jUnit and Easymock for java).
While I have mostly worked on a bunch of my own hobby projects which can be found on my github, I have tried to contribute to the Visual Studio Code project by trying to fix a bug (user Ross65536[[ https://github.com/Microsoft/vscode/pull/39060 | My PR]]).