Skip to content

Latest commit

 

History

History
123 lines (75 loc) · 6.62 KB

File metadata and controls

123 lines (75 loc) · 6.62 KB

Google-Summer-of-Code-2022-Work-Product

Project Details :

Project Name : Admin Web Portal: Plugin Architecture

Problem Statement : Latent features in the mobile app should be enabled by installing plugins via the Admin web portal. The API would need to detect the existence of a plugin, and automatically query the plugin for authorization to do some action. When authorized, the mobile app will display new capabilities. This project has two parts:

i. The design and development of the plugin architecture

ii. The creation of a donations plugin to prove the concept

Issue and Pull requests :

1. Design and devlopement of the plugin architecture.

The plugin in talawa application works just like a browser extension works in a browser. The difference here is that the plugin store from which the plugin is installed is handled by the admin of that organization and are used by the members of the organization.

Talawa Admin

Summary :

  • Refractored Store UI
  • Implement Search Functionality for plugins
  • Added fallback screen for the plugin store

Talawa

Summary :

  • Implemented TalawaPluginProvider widget to implement plugin.
  • fetch_plugin_list function to load new plugins
  • Integrated Plugin list with the Hive database.

Talawa API

Summary :

  • Create new MongoDB Model for plugin
  • Implemented GraphQL query to get list of plugins getPlugins
  • Added GraphQL mutation to add new plugin in database createPlugin
  • Added GraphQL mutation to update install staatus of the plugin for a specific organization updatePluginStatus
  • Added GraphQL mutation to update the installed organizations list of plugin updatePluginInstalledOrgs

2. The creation of Donations plugin to prove the concept

Donation is a feature on talawa mobile app that enables organization members to donate to current organization throught credit card.The Donation is also implemented as plugin which makes it accessible in the mobile app only if it is installed by the admin of that organization

Talawa

Summary :

  • Implementation of Donation feature as a plugin
  • Designed and Added Logic to implement Navbar Features a plugins
  • Added TalawaPluginProviderNav which is used for wrapping the navbar items to make them plugins
  • Fixed how the components were rendering using TalawaPluginProvider

Talawa API

Summary :

  • Implementation of Donation API routes for talawa-api
  • Mutations and Queries
    • getDonations query to get list of donatinons made for that organization.
    • getDonationById query to get details about the speicic donation.
    • getDonationByOrgsId query getting the list of donation with thier organization id.
    • createDonation mutation to create new Donation.
    • deleteDonation mutation to delete the donation record in case if the transaction fails to complete from flutter_braintree pacakge or by the user.

Other

Technical Documenmtation for plugins

Talawa Docs - The documentation for talawa project.

Documentation Includes :

  • Overview of What a plugin actually means in talawa repositories
  • A High-level diagram to describe workflow with description
  • Code Explanation

Pull request:

Documentation Includes :

  • Technical overview of the steps used to convert the features into pluigns
  • Step-by-step example of actual conversion of a feature to a plugin (ex. Donation feature)

Working Demo Video of Plugin Architecture :

Talwa.Demo.Admin.and.App.mp4

Conclusion

I have spent my summer implementing a plugin for talawa application. This problem statement encouraged me to deeply study some technical concepts and writing. I've worked with my mentors Dominic Mills , Yash Dubey & Peter Harrison to design and implement the plugin architecture with a Donation feature as a plugin to prove the concept thier support and feedback helped me to very much. I would also like to thank my mentors, org admins and other contributors for helping me to make the project possible. Palisadoes Foundation has a very supportive community that believes in helping each other to grow together.