= Transform picture (crop/rotate/etc) within the app =
== Profile :- ==
**Name: Rishav Gupta**
**Email**: rishavgupta933@gmail.com
**Education**: B-tech (CSE) 2nd year student , Gurunanak Institute of Technology
**Linked-in**: [[ https://www.linkedin.com/in/rishav-gupta-edutainer/ | Rishav Gupta ]]
**Github :** [[ https://github.com/Rishavgupta12345 | Rishavgupta12345 ]]
**Other communication modes**: Hangouts, discord, Zulip, Slack.
**Location during GSoC**: kolkata/West Bengal, India
==**Synopsis**:==
**App**
Wikimedia Commons is an android app by the Wikimedia Foundation that allows users to browse and upload pictures to the Wikimedia commons repository from phones/tablets. Users can select images from the gallery or directly from the camera for an upload.
**Project:**
The project is about implementing a feature that allows the user to Transform pictures (crop/rotate/etc) within the app.
Issue link: https://github.com/commons-app/apps-android-commons/issues/1192
==**Implementation**:==
TODO
==**Mentors** : ==
@Nicolas_Raoul
@Madhurgupta10
@AdityaSrivastav2009
==**Timeline** :==
TODO
==**About Me** : ==
I am Rishav Gupta, a sophomore at [[ https://gnit.ac.in/ | Gurunanak Institute of Technology ]], India pursuing Btech in Computer Science and Engineering (expected 2024). I am an active member of the BitByte Coding club of my college. When I entered college I developed my interest in android development. And worked on different self-made and open source projects. This helped me gain a good knowledge about it.
I like to sing and listen to music. My hobby is photography and experimenting with photoshop. I read self-development books in my free time and solve Rubix cube for fun
==**Availability** :==
- **Are you eligible for Google Summer of Code ?** I’ve read the eligibility criteria and I am eligible to apply for Google Summer of Code.
- **Do you plan to submit any other proposal apart from this one ?** No, I am only submitting this proposal.
- **Do you have any other plans during the period of GSoC ?** No, I don’t have any other plans during the period of GSoC.
- **How many hours can you dedicate to this ?** I have no other commitments this summer. I’ll be able to give 40+ hours per week. If
required I can put in more time to finish up the goals for the week.
- **Have you been selected to GSoC before ?** No, this is my first time participating in GSoC.
==**What Excites me about this project** :==
I am very passionate about photography and photoshop is my hobby. That's the prime reason I am contributing to WIKIMEDIA and chosen it to work in GSoC. Wikimedia is all about media and photos which I am all about. And thus the project to implement transforming and editing the photos within the app is the best match to my interest and mastery.
==**Why should I be selected for the project** : ==
- **Skill** :- I am passionate about android development. I’ve worked on android projects for a long time and have a good knowledge of its architecture. I am familiar with the latest android technologies and am well versed in the Java/Kotlin programming language. I have knowledge of API and caching in android. I’ve developed an application following professional MVVM architecture and am familiar with jetpack libraries. As a part of my course curriculum, I know Datastructures and Algorithms (DSA) and Databases and Management Systems (DBMS) . And a photoshop expert. Thus, I believe I have the perfect set of skills required for this project.
- **Knowledge**:- I've been contributing to the Commons android project since Jan 2022. Fixed many issues, reported some, helped maintainers in review, and cleaned 50+ old issues to make the project repository cleaner.
==**Past Experience** : ==
I’ve worked on many android applications and is learning android dev for a year now. I’ve contributed and collaborated on several open-source projects. I am familiar with git, GitHub, and version control. I have also participated in open source contests like Hacktoberfest and IIT Kharagpur winter of code and successfully cleared them.
**Projects** :
- [[ https://github.com/Rishavgupta12345/minesweeper | Minesweeper ]] - developed a minesweeper android game.
- [[ https://github.com/Rishavgupta12345/music-player | Music player ]] - An app to play the songs on your phone.
**Relevant Skills**
- Familiar with android architecture components
- UI design in Android.
- Android SDK.
- Jetpack library.
- Github and git Version control.
- Unit Tests in Android.
- can work on both JAVA/KOTLIN
==**Contributions to Wikimedia Commons** ==
**PULL REQUESTS**
- **Total = 11**
- **Merged = 8**
- **Open = 2**
| **PR LINK** | **TITLE** | **STATUS** | **MY LEARNING** |
| [[ https://github.com/commons-app/apps-android-commons/pull/4789 | #4789 ]] | Fix warnings for ImageFileLoader.kt | merged | fixing warnings using the android studio suggestion itself
| [[ https://github.com/commons-app/apps-android-commons/pull/4860 | #4860 ]] | could be success could be failure | merged | small mistake in a string can make a entire app Un-functional
| [[ https://github.com/commons-app/apps-android-commons/pull/4873 | #4873 ]] | Copyright warning for beta flavor | merged | adding popup feature was something I learnt new while solving this issue
| [[ https://github.com/commons-app/apps-android-commons/pull/4863 | #4863 ]] | The empty screen while no images found in custom picture selector | merged | this issue made me struggle a lot but was simple and taught me never to give up
| [[ https://github.com/commons-app/apps-android-commons/pull/4884 | #4884 ]] | The empty screen while no images found in custom picture selector [bug] | merged | test failed from above pull request , entirely a new experience, I learned the importance of UnitTesting
| [[ https://github.com/commons-app/apps-android-commons/pull/4890 | #4890 ]] | [Bug]: UnknownFormatConversionException: Conversion = 'এ' | merged | again a small string mistake made the app unfunctional, solved easily
| [[ https://github.com/commons-app/apps-android-commons/pull/4882 | #4882 ]] | Add link to user guide in About | merged | learned about adding hyperlink into the app
| [[ https://github.com/commons-app/apps-android-commons/pull/4899 | #4899 ]] | Prod/beta flavor messages may be nonsense for users | merged | added quality information for users
| [[ https://github.com/commons-app/apps-android-commons/pull/4915 | #4915 ]] | Improve review feature documentation | merged | got some insights about showing popup dialog
| [[ https://github.com/commons-app/apps-android-commons/pull/4920 | #4920 ]] | Replace toasts with snackbars where appropriate | open | got to know about the working of snackbars
| [[ https://github.com/commons-app/apps-android-commons/pull/4766 | #4766 ]] | Make the app more accessible - content description | open | use of adding content discription
**ISSUES CREATED**
| **ISSUE LINK** | **TITLE** | **STATUS**
| [[ https://github.com/commons-app/apps-android-commons/issues/4887 | #4887 ]] | Clear the old issues in this repository | open
| [[ https://github.com/commons-app/apps-android-commons/issues/4894 | #4894 ]] | [Bug]: language Bengali has many string problems | open
**OTHER TASK**
This is something that is a completely different form of contribution one can do to an organization. While searching for issues to work on I found out that the current repository of WIKIMEDIA is filled up with obsolete and irrelevant issues. There were **550+ issues** when I first started working. So I decided to inform about those to the mentors of our organization so that they can review and close those issues. And I was successful to close about **45+ issues**.
- **Links** :-
[[ https://github.com/commons-app/apps-android-commons/issues/4498| #4498 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4709| #4709 ]] , [[https://github.com/commons-app/apps-android-commons/issues/4459|#4459 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4443| #4443 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4594|#4594 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3066|#3066 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3917|#3917 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3607|#3607 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2919|#2919 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2836|#2836 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4398|#4398 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4855|#4866 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4589|#4598 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4307|#4307 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4388|#4388 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4269|#4269 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4234|#4234 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4131|#4131 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3956|#3956 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3987|#3987 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3394|#3394 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2950|#2950 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2920|#2920 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2910|#2910 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3247|#3247 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3208|#3208 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2785|# 2785 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4676|#4676 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3871|# 3871 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4670|#4670 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3777|#3777 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3246|#3246 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2002|#2002 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2747|#2747 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/2891|#2891 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3123|#3123 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3204|#3204 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3431|#3431 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3663|#3663 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3866|#3866 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3907|#3907 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3951|#3951 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/3968|#3968 ]] , [[ https://github.com/commons-app/apps-android-commons/issues/4209|#4209 ]]