Page MenuHomePhabricator

Proposal for Outreachy Round 19 (WikieEducation Android App)
Closed, ResolvedPublic

Description

Profile

Name : Agatevure Glory
Email : agatevureglory@gmail.com
IRC nick : Agatevureglory
Blog : agatevure.com
GitHub :gconnect
Location : Nigeria (GMT+1)
Typical working hours : Between 8am and 5pm GMT +1

Synopsis

The Wikemedia Education Dashboard Android app is an app that support Wikipedia education assignments, edit-a-thons, and other editing projects. It provides data and course management features for groups of editors — instructors, students, and others — who are working on Wikipedia, Wikidata, and other Wikimedia wikis. Users log in with their Wikipedia accounts (through OAuth) and allow the Dashboard to make edits on their behalf. The Dashboard automates many of the standard elements of organizing and participating in a Wikipedia classroom assignment, edit-a-thon, or other wiki contribution campaign.

The project aims to achieve the following objectives:
• Taking feedback from users about the current app
• Adding new features
• Fixing bugs
• improving the code quality of the app
• UI improvement of the app
• Campaign Details Page
• Local Database to add offline support in App
• Migrate app from MVP to MVVM architecture

Mentors : @Ragesoss, @Ujjwalagrawal17

Timeline

PeriodTask
:---------------------:----------:
Dec 3 to Dec 10Community bonding period. • Communicating with mentors on refining project proposal, finalizing deadlines and setting milestones • Upload profile picture on Wikimedia Commons • Subscribe to Wikimedia mailing list wikitech-l@lists.wikimedia.org • Setup Wikimedia user page and keep it up to date with project work and report • Read stories from across the Wikimedia movement on Medium • Watch previous videos on Wikimedia technical topics
Dec 17 to Dec 24• Taking feedback from users about the current app • Adding new features • Fixing bugs • improving the code quality of the app
Dec 24 to Dec 28Christmas holiday
Dec 29 to Dec 31Phase I evaluation
Jan 1 to Jan 7•UI improvement
Jan 8 to Jan 13•Add Kotlin Kodein dependency Injection •Performing background task using Kotlin coroutines
Jan 14 to Jan 18•Offline Feature for CampaignList
Jan 19 to Jan 28•Offline Feature for CourseList
Jan 29 to Jan 31Phase II evaluation
Feb 1 to Feb 7Migrate app from MVP to MVVM architecture•Local Database to add offline support in App •Create ViewModels for the Activities and Fragments •Replace the Presenter with ViewModels •Replace the Providers with Repository
Feb 8 to Feb 14•Create Campaign Details page
Feb 15 to Feb 21•Taking feedback from users •Bug fixes and testing
Feb 22 to Feb 29Mentors submit final student evaluations.
March 1 to March 3Final results of Outreachy 2019 announced

Deliverables

• Creating task on Phabricator
• improving the code quality of the app
• Use Navigation Fragment where needed to host the fragments using Navigation graph
• Add databinding to the project to replace findViewById
• Add Kotlin Kodein dependency Injection
• Peforming background task using Kotlin courotines
• Campaign Details Page
• Migrate app from MVP to MVVM architecture
• Local Database to add offline support in App
• Taking feedback from users

Phase I evaluation

• improving the code quality of the app
• UI improvement mockup design for Dashboard, CampaignList, CourseList, and CourseDetails Page
• Create empty state illustration mockup design
• Bug Fixes
• Code refactoring using Databinding
• Code refactoring using Android Navigation Component

Phase II evaluation

• Add Kotlin Kodein Dependency Injection
• Preforming background task using Kotlin coroutines
• Migrate app from MVP to MVVM architecture
• Local Database to add offline support in App
• Create a Campaign Details page
• Taking feedback from users

Final evaluation

Participation
• Work on a separate branch on git and uploading code to the forked repo almost on a daily basis.
• Creating pull requests as and when a complete feature is done.
• Online on IRC in my working hours (8 am to 5 pm GMT +1)
• I will be online on slack to communicate with my mentors during working hours
• Publishing on my blog the summary of a task at the end of a task period as above in the timeline agatevure.com/blog)

About me

I am a graduate of Banking and Finance with so much love for software development. I am a life-long learner and love to be part of community building by way of organizing and volunteering at tech events as well as contributing to Open Source Software’s. This is my first participation in Outreachy Open Source Internship Program. This will be my first priority since I won't have any other commitments during this period.
During the course of the contribution period, I have been contributing to WikieEducation Android App. I have created some issues, fix some of the existing issues. I have fixed some bugs, handled some help needed task, Added some features and enhancement to the app. Contributing to the WikieEducation Dashboard Android app will impact the world in no small way as the app is a useful open source tool that aid learning and monitors performance.

Past Experience

I have experience working with Java, Kotlin, Android Studio, Python, Flask, Django, HTML, CSS and JS among others. Among databases I mostly worked on PostgreSQL, MySQL, Sqlite3 and among VCS I worked with git. Among continuous integration tools, I mostly work with Circleci and Travisci. Among OS I mostly work with Mac.
I designed a laundry application. I created a question and answer android application and a four in one android application that contains bible, devotionals, study guide and puzzle devotional application. The devotional app contains devotional for the year and fetches current bible verse for each day from the server.
I have worked on other android applications that make use of current google standard for android development using Kotlin and MVVM design pattern, App modularization, Kotlin Coroutine and dependency Injection. I also follow google material design guidelines when developing android applications. Most of my applications can be found here.
Aside Android development, I have also worked on a few web projects. I developed an event website for hosting free workshops in my community and portfolio website. I created APIs and a blog site with Python, Flask and Django.

Here are some of the links to my past projects
https://github.com/gconnect/MVVMKotlinExample
https://github.com/gconnect/RoomWordSampleKotlin
https://github.com/gconnect/NavigationComponentExample
https://github.com/gconnect

Microtasks Completed

• Added Onboarding page to the app
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/issues/23
• Change the Detail Media Fragment Layout to Constraint Layout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/issues/76
• Designed a Mock-up for the onboarding

https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/issues/82

• Created a WelcomeHostActivity for the on-boarding

https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/issues/83

• Use Constraintlayout in wiki education dashboard fragment
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/issues/97
• Use Constraintlayout in Outreach Programs and events dashboard fragment
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/issues/98

• Fix -[BUG] Scrolling issue in Media Details Page
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/issues/57

Fix -Overlapping Views
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/226

• Change Upload and Activity View positions
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/211

• Change Fragment Recent Activity to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/208

• Removed Unnecaessary Constraints from Fragment Explore
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/201

• Changed item_rv_student layout to ConstaintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/199

• Changed item_rv_my_dashboard to ConstaintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/199

• Changed item_rv_media_category to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/197

• Changed item_rv_files to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/196

• Changed item_rv_expore_courses_users to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/195

• Changed item-rv_explore courses to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/194

• Changed item_rv_course upload to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/193

• Changed item_rv_campaign_list to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/192

• Changed include_layout_explore_courses to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/191

• Changed item_include_files_media to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/190

• Changed fragment_image_viewer to ConstraintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/189

• Changed fragment_profle_stat to ConstarintLayout
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/225

• Local Database setup with Room Persistent Library
https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/pull/228

Event Timeline

Hi @Agatevureglory , I will like to mention 2 points:

  1. If possible add try to include https://github.com/WikiEducationFoundation/apps-android-wikiedudashboard/issues/145 feature in your proposal.
  1. Add some more time for taking feedback from users. i.e. (After 2nd Evaluation). We will be likely to release a new version in google play after phase 2 and will like to take feedback from the users.

Other things look good to me.

@Ujjwalagrawal17 I have updated the proposal. I have added issue #145 and also created time for user feedback at the end of 2nd evaluation. Thanks

Most of my applications can be found here. ?- glory I think link is missing in past experience section. Please add it.

Thanks for creating a proposal! As we are past the deadline, if you would like us to consider your proposal for review, please move it to the submitted column. Thank you!

Thanks for creating a proposal! As we are past the deadline, if you would like us to consider your proposal for review, please move it to the submitted column. Thank you!

Please how do I move it to submitted column?

Kizule moved this task from Backlog to Proposals Accepted on the Outreachy (Round 19) board.

@Agatevureglory: You can do that via the Add Action...Move on Workboard dropdown (but Zoranzoki21 has already done that - thanks!)

Hi @Agatevureglory , since for the week 2 tasks, things are bug fixes and doing improvements in the app. So you can create new Issues in GitHub for

  1. improving the UI in existing pages - specifically - my dashboard fragment, explore fragment, and course details page (student list, article list),
  2. Testing the app and fixing memory leaks in these pages. (in some pages memory leaks are there)

Thanks @Ujjwalgrawal17 will work on them.

@Agatevureglory Hi! As we are almost half-way through the internship period, I would encourage you to update your progress in a comment on both the proposal and the project task. Thank you :)

So far since the internship, I have been able to achieve the following;

  • Improved the code quality of the app by removing added coded strings where present
  • Removed hardcoded version number from the settings page
  • Created kotlin BuildSrc for managing the dependencies
  • UI improvement mockup design: my dashboard fragment, explore fragment, and course details page (student list, article list)details, profile page
  • Created mockups for empty state Illustrations
  • Implemented Offline features for CampaignList
  • Migrated CampaignList from MVP to MVVM
  • Implemented Offline features for CourseList
  • Migrated Course list from MVP to MVVM
  • Created some issues in the project that am still working on.

@Agatevureglory Hi! As we are almost half-way through the internship period, I would encourage you to update your progress in a comment on both the proposal and the project task. Thank you :)

I am not too clear when you said on the Proposal and the Project task. By *On the Proposal and Project task you meant?*

I just gave an update now on Phabricator. Thanks

@Agatevureglory this looks great! I meant to leave a same update here T233407 :)

Hi! As the Outreachy Round 19 has ended, could you consider marking this task as resolved? If not, could you share what else is remaining?