extension framework game plan
Download
Skip this Video
Download Presentation
Extension Framework Game Plan

Loading in 2 Seconds...

play fullscreen
1 / 16

Extension Framework Game Plan - PowerPoint PPT Presentation


  • 34 Views
  • Uploaded on

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.\n

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Extension Framework Game Plan' - vinsol


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
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
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 / view through Web
slide4
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
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
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
Let’s break the above requirements into two groups
  • Model layer changes
  • Request layer changes
model 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
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
request layer changes
Request Layer Changes

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
  • a route exposing the controllerontroller / view through Web
slide11
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
  • a route exposing the controller / view through Web
translates to1
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
slide13
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
  • a route exposing throughe controller / view through Web
what we need
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
What we need
how we attempt to solve
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
ad