Skip to content

Contains a brief description of the GSoC'22 project "Plugin Architecture" developed by @SiddheshKukade for Palisadoes Foundation. Project was mentored by @DMills27

Notifications You must be signed in to change notification settings

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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 

Repository files navigation

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.

About

Contains a brief description of the GSoC'22 project "Plugin Architecture" developed by @SiddheshKukade for Palisadoes Foundation. Project was mentored by @DMills27

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published