SlideShare a Scribd company logo
1 of 16
Extension Framework
Game Plan
VINSOL
Let’s validate and list the capabilities needed in Extension
Framework through an extension which provides feature to mark
a product as user’s favorite.
Favorite
Product
Extension
Requirements:
Ability to mark and unmark a Product
as favorite
➢a View probably showing all
products with Ability to
mark/unmark product as favorite
➢a controller action preparing the
view
➢a route exposing the controller /
view through Web
➢a controller action handling mark
product as favorite
➢a route exposing the controller /
➢a controller action removing product from the list of
favorites
➢a route exposing the controller / view through Web
➢a model interfacing with database to store product
favorited by user
➢a migration to create join table in database
➢a join table storing product_id and user_id
Showing All
Products favorited
by a User
➔association in User to get
favorite products
➔a View showing list of
Favorite Products
➔a controller preparing the
view
➔a route exposing the
controller / view through
Web
Showing Users who
favorited a
particular Product
➔association in Product to
get users who favorited
➔a View showing list of
Users who favorited
➔a controller preparing the
view
➔a Route exposing the
controller / view through
Web
➔Ability to test the
integration of above
mentioned requirements
Let’s break the above
requirements into two groups
● Model layer changes
● Request layer changes
Model Layer Changes
Ability to mark and unmark a Product as favorite
➔a model interfacing with database to store product
favorited by user
➔a migration to create join table in database
➔a join table storing product_id and user_id
Showing All Products favorited by a User
➔association in User to get favorite products
Showing Users who favorited a particular Product
➔association in Product to get users who favorited
translates to
Ability to mark and unmark a Product as favorite
➔ New Ecto Model with user_id and product_id fields
➔ Ecto migration to create join table storing product_id and
user_id
Showing All Products favorited by a User
➔ extending User schema to have associations as needed
➔ support functions in User Model to retrieve all products
favorited by a user
Showing Users who favorited a particular Product
➔ extending Product schema to have associations as needed
➔ support functions in Product Model too retrieve all users who
favorited a product
Ability to mark and unmark a Product as favorite
➔ a View probably showing all products with ability to mark/unmark
product as favorite
➔ a controller action preparing the view
➔ a route exposing the controller / view through Web
➔ a controller action handling mark product as favorite
➔ a route exposing the controller / view through Web
➔ a controller action removing product from the list of favorites
Request Layer Changes
Showing All Products favorited by a User
➔a View showing list of Products
➔a controller preparing the view
➔already route exposing the controller / view through Web
Showing Users who favorited a particular Product
➔a View showing list of Users
➔a controller preparing the view
translates to
Ability to mark and unmark a
Product as favorite
➔a View probably showing
all products with ability
to mark/unmark product as
favorite
➔a controller with index /
create / delete action
➔a route exposingposing
index / create / delete
action
Showing All Products favorited by a User
➔a View showing list of Products
➔a controller preparing the viewew
➔a route exposing the controller / view through Web
Showing Users who favorited a particular Product
➔a View showing list of Users
➔a controller preparing the view
Whatweneed
➔way to extend schema definitions for
existing models
➔way to add new functions in existing models
➔way to add routes
➔way to add controller / views for newly
added routes
➔way to extend views
➔way to reuse layouts
➔way to reuse already available routes
How we attempt to solve
➔Elixir Metaprogramming
➔Elixir umbrella app dependencies to share and
reuse code among Nectar & Extensions using
ExtensionManager
➔Extensions as Phoenix project leveraging
NectarCommerce
Thank you...

More Related Content

Viewers also liked

Viewers also liked (20)

2.el ikinci el lcd tv alımı satımı
2.el ikinci el lcd tv alımı satımı2.el ikinci el lcd tv alımı satımı
2.el ikinci el lcd tv alımı satımı
 
MeganArcher_EVS_FinalReport
MeganArcher_EVS_FinalReportMeganArcher_EVS_FinalReport
MeganArcher_EVS_FinalReport
 
E-book EuSaúde - Obesidade Infanto
E-book EuSaúde - Obesidade InfantoE-book EuSaúde - Obesidade Infanto
E-book EuSaúde - Obesidade Infanto
 
Catálogo Selugi - Temporada 2017
Catálogo Selugi - Temporada 2017Catálogo Selugi - Temporada 2017
Catálogo Selugi - Temporada 2017
 
The research paper
The research paperThe research paper
The research paper
 
Chapter 1 types of research
Chapter 1 types of researchChapter 1 types of research
Chapter 1 types of research
 
Nature of Inquiry and Research
Nature of Inquiry and ResearchNature of Inquiry and Research
Nature of Inquiry and Research
 
Identifying the Inquiry and Stating the Problem
Identifying the Inquiry and Stating the ProblemIdentifying the Inquiry and Stating the Problem
Identifying the Inquiry and Stating the Problem
 
Selection (1)
Selection (1)Selection (1)
Selection (1)
 
プラスのストロークを身に付けよう
プラスのストロークを身に付けようプラスのストロークを身に付けよう
プラスのストロークを身に付けよう
 
Ethics of Opioids
Ethics of OpioidsEthics of Opioids
Ethics of Opioids
 
раздаточные мат лы 1
раздаточные мат лы 1раздаточные мат лы 1
раздаточные мат лы 1
 
Steps
Steps Steps
Steps
 
INE IP man 2016 octubre
INE IP man 2016 octubreINE IP man 2016 octubre
INE IP man 2016 octubre
 
La plenitud y la vida
La plenitud y la vidaLa plenitud y la vida
La plenitud y la vida
 
Creatividad
CreatividadCreatividad
Creatividad
 
Seo
SeoSeo
Seo
 
Desarrollo del pensamiento y la creatividad
Desarrollo del pensamiento y la creatividadDesarrollo del pensamiento y la creatividad
Desarrollo del pensamiento y la creatividad
 
Presentacion
PresentacionPresentacion
Presentacion
 
Imágenes animación
Imágenes animaciónImágenes animación
Imágenes animación
 

Similar to Extension framework game plan

New Products Web Site
New Products Web SiteNew Products Web Site
New Products Web Sitegenegw
 
SFDC UI - Introduction to Visualforce
SFDC UI -  Introduction to VisualforceSFDC UI -  Introduction to Visualforce
SFDC UI - Introduction to VisualforceSujit Kumar
 
Building Device Agnostic UX systems - GeekGirl, London 28 Oct 2014
Building Device Agnostic UX systems - GeekGirl, London 28 Oct 2014Building Device Agnostic UX systems - GeekGirl, London 28 Oct 2014
Building Device Agnostic UX systems - GeekGirl, London 28 Oct 2014Anna Dahlström
 
Introduction to Ruby On Rails
Introduction to Ruby On RailsIntroduction to Ruby On Rails
Introduction to Ruby On RailsPiotr Imbierowicz
 
Miva + WordPress
Miva + WordPressMiva + WordPress
Miva + WordPressMiva
 
31-Steps Conversion & Retention Optimization Checklist.pptx
31-Steps Conversion & Retention Optimization Checklist.pptx31-Steps Conversion & Retention Optimization Checklist.pptx
31-Steps Conversion & Retention Optimization Checklist.pptxRamanParashar3
 
Discover the power of browser developer tools
Discover the power of browser developer toolsDiscover the power of browser developer tools
Discover the power of browser developer toolsylefebvre
 
Ecommerce website with seo optimization
Ecommerce website with seo optimizationEcommerce website with seo optimization
Ecommerce website with seo optimizationKumar Narayan
 
Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Oro Inc.
 
Whats new in WCAG 2.1
Whats new in WCAG 2.1Whats new in WCAG 2.1
Whats new in WCAG 2.1Ross Mullen
 
Online Shopping based on ASP .NET
Online Shopping based on ASP .NET Online Shopping based on ASP .NET
Online Shopping based on ASP .NET Pragnya Dash
 
Winter 19 release webinar
Winter 19 release webinarWinter 19 release webinar
Winter 19 release webinarbrightgenss
 

Similar to Extension framework game plan (20)

New Products Web Site
New Products Web SiteNew Products Web Site
New Products Web Site
 
SFDC UI - Introduction to Visualforce
SFDC UI -  Introduction to VisualforceSFDC UI -  Introduction to Visualforce
SFDC UI - Introduction to Visualforce
 
Larait Hub
Larait HubLarait Hub
Larait Hub
 
Going web native
Going web nativeGoing web native
Going web native
 
Building Device Agnostic UX systems - GeekGirl, London 28 Oct 2014
Building Device Agnostic UX systems - GeekGirl, London 28 Oct 2014Building Device Agnostic UX systems - GeekGirl, London 28 Oct 2014
Building Device Agnostic UX systems - GeekGirl, London 28 Oct 2014
 
Prototyping + User Journeys
Prototyping + User JourneysPrototyping + User Journeys
Prototyping + User Journeys
 
Dimeji Classified Website
Dimeji Classified WebsiteDimeji Classified Website
Dimeji Classified Website
 
Visualforce
VisualforceVisualforce
Visualforce
 
Introduction to Ruby On Rails
Introduction to Ruby On RailsIntroduction to Ruby On Rails
Introduction to Ruby On Rails
 
Miva + WordPress
Miva + WordPressMiva + WordPress
Miva + WordPress
 
31-Steps Conversion & Retention Optimization Checklist.pptx
31-Steps Conversion & Retention Optimization Checklist.pptx31-Steps Conversion & Retention Optimization Checklist.pptx
31-Steps Conversion & Retention Optimization Checklist.pptx
 
Discover the power of browser developer tools
Discover the power of browser developer toolsDiscover the power of browser developer tools
Discover the power of browser developer tools
 
Standard Controllers
Standard Controllers Standard Controllers
Standard Controllers
 
Ecommerce website with seo optimization
Ecommerce website with seo optimizationEcommerce website with seo optimization
Ecommerce website with seo optimization
 
Vf ppt (1)
Vf ppt (1)Vf ppt (1)
Vf ppt (1)
 
Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)
 
Magento 2 A/ B Testing Extension
Magento 2 A/ B Testing ExtensionMagento 2 A/ B Testing Extension
Magento 2 A/ B Testing Extension
 
Whats new in WCAG 2.1
Whats new in WCAG 2.1Whats new in WCAG 2.1
Whats new in WCAG 2.1
 
Online Shopping based on ASP .NET
Online Shopping based on ASP .NET Online Shopping based on ASP .NET
Online Shopping based on ASP .NET
 
Winter 19 release webinar
Winter 19 release webinarWinter 19 release webinar
Winter 19 release webinar
 

Recently uploaded

%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2WSO2
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2
 

Recently uploaded (20)

%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 

Extension framework game plan

  • 2. Let’s validate and list the capabilities needed in Extension Framework through an extension which provides feature to mark a product as user’s favorite.
  • 3. Favorite Product Extension Requirements: Ability to mark and unmark a Product as favorite ➢a View probably showing all products with Ability to mark/unmark product as favorite ➢a controller action preparing the view ➢a route exposing the controller / view through Web ➢a controller action handling mark product as favorite ➢a route exposing the controller /
  • 4. ➢a controller action removing product from the list of favorites ➢a route exposing the controller / view through Web ➢a model interfacing with database to store product favorited by user ➢a migration to create join table in database ➢a join table storing product_id and user_id
  • 5. Showing All Products favorited by a User ➔association in User to get favorite products ➔a View showing list of Favorite Products ➔a controller preparing the view ➔a route exposing the controller / view through Web
  • 6. Showing Users who favorited a particular Product ➔association in Product to get users who favorited ➔a View showing list of Users who favorited ➔a controller preparing the view ➔a Route exposing the controller / view through Web ➔Ability to test the integration of above mentioned requirements
  • 7. Let’s break the above requirements into two groups ● Model layer changes ● Request layer changes
  • 8. Model Layer Changes Ability to mark and unmark a Product as favorite ➔a model interfacing with database to store product favorited by user ➔a migration to create join table in database ➔a join table storing product_id and user_id Showing All Products favorited by a User ➔association in User to get favorite products Showing Users who favorited a particular Product ➔association in Product to get users who favorited
  • 9. translates to Ability to mark and unmark a Product as favorite ➔ New Ecto Model with user_id and product_id fields ➔ Ecto migration to create join table storing product_id and user_id Showing All Products favorited by a User ➔ extending User schema to have associations as needed ➔ support functions in User Model to retrieve all products favorited by a user Showing Users who favorited a particular Product ➔ extending Product schema to have associations as needed ➔ support functions in Product Model too retrieve all users who favorited a product
  • 10. Ability to mark and unmark a Product as favorite ➔ a View probably showing all products with ability to mark/unmark product as favorite ➔ a controller action preparing the view ➔ a route exposing the controller / view through Web ➔ a controller action handling mark product as favorite ➔ a route exposing the controller / view through Web ➔ a controller action removing product from the list of favorites Request Layer Changes
  • 11. Showing All Products favorited by a User ➔a View showing list of Products ➔a controller preparing the view ➔already route exposing the controller / view through Web Showing Users who favorited a particular Product ➔a View showing list of Users ➔a controller preparing the view
  • 12. translates to Ability to mark and unmark a Product as favorite ➔a View probably showing all products with ability to mark/unmark product as favorite ➔a controller with index / create / delete action ➔a route exposingposing index / create / delete action
  • 13. Showing All Products favorited by a User ➔a View showing list of Products ➔a controller preparing the viewew ➔a route exposing the controller / view through Web Showing Users who favorited a particular Product ➔a View showing list of Users ➔a controller preparing the view
  • 14. Whatweneed ➔way to extend schema definitions for existing models ➔way to add new functions in existing models ➔way to add routes ➔way to add controller / views for newly added routes ➔way to extend views ➔way to reuse layouts ➔way to reuse already available routes
  • 15. How we attempt to solve ➔Elixir Metaprogramming ➔Elixir umbrella app dependencies to share and reuse code among Nectar & Extensions using ExtensionManager ➔Extensions as Phoenix project leveraging NectarCommerce