Custom pictures selector which indicates what pictures have been uploaded already
Profile Information
Name :Prince
Email :kushwahaprince418@gmail.com
University :Krishna engineering college, Ghaziabad, Uttar Pradesh
Github Link :https://github.com/Prince-kushwaha
Linkedin :https://www.linkedin.com/in/prince-kushwaha-bb80a8198/
Other communication modes : Zulip
Location during GSoC: Gurugram, Harayana, India
Typical working hours (include your timezone) : Between 3 pm to 1 am UTC +5:30
Possible Mentor(s)
Mentor: @Nicolas_Raoul (Nicolas Raoul)
Mentor: @Madhurgupta10(Madhur gupta)
Synopsis
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons. Commons is not only the image repository for Wikipedia but an independent project that seeks to document the world with photos, videos, and recordings.
Project:
The project is about adding a Custom Picture selector activity that also indicates what pictures have been uploaded to the commons android app.
Issue link : https://github.com/commons-app/apps-android-commons/issues/175
About Me
I am second year student, pursuing B.tech in Computer Science and Engineering from Krishna engeering College , Ghaziabad, Uttar Pradesh
I love Android Development and I have been doing it for the past one years. I am also a strong supporter of open source and I love contributing to it. I have contributed to the Commons Android app since october 2020.
I am an active member of Website and software development cell the official website and app development team of the institute.
I am also completed WebDevelopment course from Udemy :Certificated
Competitive programming
Codeforce profile
Other Skills - Developing Websites (Frontend and Backend) using HTML, CSS, Javascript and NodeJs, MongoDB
Past Experience
Past Experience
I am love android Development and contributing to the open source projects
I am also doing web web development and competitive programming
Projects
- QuizAdminApp :Learn Firebase authentication, MVM, viewModel, Firebase DataBase
- QuizApp :Learn Firebase DataBase, MVM
- Todo-Website :Learn css, html ,Javascript ,ejs, mongoDB, express
- Blog -website fonted:Learn Html,css , Javascript, MongoDB
competitive programming
Codeforce profile
Other Skills - Developing Websites (Frontend and Backend) using HTML, CSS, Javascript, Python and NodeJs, MongoDB
Implementation
What can be implemented?
- Custom picture selector to select image for upload from phone
- If an picture is already upload then on picture show an thumbails of Commons log and that picture is not selectable for Upload
Mockups
Design 1
- Custom image Selector Floating Action Button
Design 2
- A Linear view of all the albums on the phone arranged by the last modified data (camera, all media given higher priority).
- Display the name, count of media items on the respective folder.
- Show the thumbnail of the most recent item as the cover image for the folder.
Design 3
- Multiple image select activity
- User not allowed to select already uploaded images.
Implementation Strategy
Create an UI for custom image selector
- Create Floating action button for custom image selector and add it to the +(plus) floating action button in contribution Activity
- Define layout attributes, create XML files for both Design 1 , Design 2, Design 3
- Create java files handling UI functionalities such as display folder name and item count, click listeners, scroll and animations.
- Create a data loader class, get the data from content resolvers, and load thumbnails in the UI using glide.
Integrate the API
- Create an Model which handle API
- Commons has a simple API to check the presence or not of a file, it works by sending the SHA1 checksum to the URL https://commons.wikimedia.org/w/api.php?action=query&list=allimages&format=xml&aisha1=<put SHA1 here>
Implement caching the data with images
- Create an viewModel which handle caching
- use the Univerasal-image-Loader library for caching of image
Integrate custom image selector activity with the Upload activity
- Create an class which forwords selected image from custom image selector Activity to Upload Activity, to start Uploading process
Relevant Skills
- Familiar with android architecture components.
- UI design in Android.
- Android SDK.
- Jetpack library.
- Github and git Version control.
- Unit Tests in Android. ( Familiar with Robolectric environment on Junit framework )
- Basics of Kotlin
Involvement
- How are you involved with open-source?
I am actively contributing to the Commons Android app project since October 2020, so far I have about 18 PR merged and also I have opened a lot of issues. I have also contributed to the other open-source organizations like Anki-Android,oppia-android
- Apart from coding do you have any other kind of involvement with the organization? NO
Availability
- Eligible for Google Summer of Code and Outreachy?
I am only Eligible 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 this summer?
No, I don’t have any other internship or plans for this summer. Google Summer of Code is the topmost priority for me this summer.
- How many hours per week can you dedicate for this?
I will dedicate a minimum of 40 hours each week for this project, I am willing to dedicate more if needed.
Have you been accepted to GSoC before?
No, I apply for gsoc first time.
TimeLine
Timeframe | Start Date | End Date | Task | |
Community Bonding Period | May-17 | June -7 | Getting Familiarized with app structure, Wikimedia Api, and Community | |
SubTask 1 | Community Bonding | |||
SubTask 2 | work on Bugs and enhancement of app | |||
SubTask 3 | Discuss about project | |||
Week 1 | June -7 | June -13 | Add custom image selector floating action Button in contrinution activity ,Create an UI Layout to show All file of phone | |
SubTask 1 | Discuss UI with mentors | |||
SubTask 2 | Create FAB(Floating Action Button ) for custom picture selector and add it to contribution activity | |||
SubTask 3 | Completed UI Layout to show All file of phone | |||
Week 2 | June -14 - | June -20 | Add the functionalities to extract file data from the phone , Binder data with UI | |
SubTask 1 | Create models and data source classes to fetch the data using content resolvers | |||
SubTask 2 | Create ViewModels to handle the data | |||
SubTask 3 | Bind Data with UI | |||
Week 3 | June -21 | June -27 | Create an UI Layout to show All photo of file when click on file,Complete UI integration with data, load the data to the UI,Unit test | |
SubTask 1 | Create an UI Layout to show All photo of file when click on file | |||
SubTask 2 | Complete UI integration with data, load the data to the UI | |||
SubTask 3 | Unit test | |||
Week 4 | June -28 | July-4 | Improve the UI,test the functionality ,Code refactoring,Fix Bugs | |
SubTask 1 | UI improvement | |||
SubTask 2 | Code refactoring | |||
SubTask 3 | Test the functionality | |||
SubTask 4 | Fix Bugs | |||
Week 5 | July -5 | July-11 | Add Commons API to check the presence of a file | |
SubTask 1 | Test the API call using PostMan | |||
SubTask 2 | Create class to handle Commons API to check the presence of a file | |||
SubTask 3 | Blog Post | |||
Week 6 | July -12 | July -18 | First Evaluation,Complete Unit test ,Bug fixes. | |
SubTask 1 | First Evaluation | |||
SubTask 2 | fix Bug | |||
SubTask 3 | Complete Unit tests | |||
Week 7 | July -19 | july -25 | Load the API data to UI | |
SubTask 1 | Make the required changes to the UI, models to integrate the API data with UI | |||
SubTask 2 | Load the API data to the UI and show the images to indicate uploaded to the commons | |||
Week 8 | July -26 | August -1 | Implement caching the api data with images. | |
SubTask 1 | Create an viewModel which handle caching | |||
SubTask 2 | Use the Univerasal-image-Loader library for caching of image | |||
Week 9 | August -2 | August -8 | Improve the performance, complete test for API, caching. | |
SubTask 1 | Improve the Performance | |||
SubTask 2 | Unit test | |||
Week 10 | August-9 | August -15 | Integrate the custom image selector activity with Commons app upload activity to process Uploading of images | |
SubTask 1 | Integrate the Custom image selector activity with Commons app Upload activity | |||
SubTask 2 | Compleleted the project | |||
SubTask 3 | Test the app | |||
Week 11 | August-16 | August -22 | Final Submission | |
SubTask 1 | Final Evalution | |||
SubTask 2 | Completed remaining Unit Test | |||
SubTask 2 | Major bugfixes, Ui improvement | |||
SubTask 3 | Overall Blog post | |||
Contributions to Wikimedia commons
PULL request create: 19
Meged Pull Reques :18
Pull Request
PR Number | Title | Status | Issue Number | |
#4325 | fix:Setting Language list is not an language list which is supported by Commons for caption and description | Merged | #4321 | |
#4306 | fix:App should respect device font-size | Merged | #4299 | |
#4274 | Explore Search: No title bar for item, non-existent menu for item, wrongly-worded menu for category | Merged | #4271 | |
#4176 | click on skip button in Peer Review after orientation change then app is crashed | Merged | #4143 | |
#4233 | app crash in CategoryDetailsActivity when click on any media (image or video) | Merged | #4196 | |
#4267 | when app theme is Dark then CategoryDetailsActivity ,SearchActivity ,WikidataItemDetalActivity, Profile Activity Toolbar color is not change to dark | Merged | #4196 | |
#4188 | fix-Incomplete Nearby List shown in Landscape mode | Merged | ##4196 | |
#4202 | fixes-Failed to send thanks" notification, but thank actually sent successfully | Merged | #3559 | |
#4204 | Upload count does not get updated right away post successful upload | Merged | #3559 | |
#4104 | Repull request of fixes #4081 App is crash when Backbutton is pressed | Merged | #4081 | |
#4139 | Crash when tapping on the nearbyNotification in Contributions activity | Merged | #4086 | |
#4102 | fixes In nearby tab when back button is pressed nothing happen(#4096) | Merged | #4096 | |
#4103 | fix bug #4101 In MediaDetailfragment Editext Dailog is Blank in Dark mode | Merged | #4101 | |
#4074 | fixes After click on the image app is crashed (#4072) | Merged | #4042 | |
#4028 | fixes Progress Bar Visibility change with Orientation Change and login process terminated | Merged | #4086 | |
#4041 | fixes #4026 (words cut off ) | Merged | #4026 | |
#3982 | Losing filled data when screen rotate (#3973) | Merged | #3973 | |
#4100 | fixes #2296 After canceling a sharing, application goes back to the search menu | Pending | #2296 | |
Issues
Create Issue :19
CLosed Issue :18
Isuues Number | Title | Status |
#4307 | Search widget to choose description language | open |
#4278 | Media details categories editor: Category not actually added | Open |
#4321 | Setting Language list is not an language list which is supported by Commons for caption and description | closed |
#4452 | when app theme is Dark then CategoryDetailsActivity ,SearchActivity ,WikidataItemDetalActivity, Profile Activity Toolbar color is not change to dark | close |
#4253 | App is Crash when click on Bookmark Bottom navigation bar icon or open Bookmark At Android API Level 25 | close |
#4196 | App crash in CategoryDetailsActivity when click on any media | close |
#4143 | click on skip button in Peer Review after orientation change then app is crashed | close |
#4140 | Toolbar with share button is missing in Profile Activity | Open |
#4101 | In MediaDetailfragment Editext Dailog is Blank in Dark mode | close |
#4096 | In nearby tab when back button is pressed nothing happen | close |
#4086 | crashwhen tapping on the nearbyNotification in Contributions activity | close |
#4081 | App is crash when Backbutton is pressed | close |
#4079 | menu item are not visible | close |
#4072 | Crash after opening media from the explore search | close |
#4063 | After click on backButton, application goes back to the exploreActivity | close |
#4031 | Textview(No Copyright violation) not fit in Peer Review Activity | close |
#4001 | Progress Bar Visibility change with Orientation Change and login process terminated | close |
#3973 | Losing filled data when screen rotate | close |
Contribtution to Anki-Android