SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Building A User-Definable,
                Flexible UI
     with Oracle Application Express (ApEx)
  By Bradley D. Brown, InteliVideo
Who am I?

•   Bradley D. Brown                     •   Today
     http://bradleydbrown.blogspot.com       • InteliVideo in April 2012
•   Founder                                  • Video Monetization Platform
     • TUSC in 1988                          • Built it to sell training online
          • Sold to Rolta in 2008            • Focused on mid and long tail and
                                               corporate deals
     • IntelliReal in 2005
                                             • ApEx provides a “quick turns”
          • Sold to Equifax in 2011
                                               approach to our offering
     • 10+ other companies, boards           • Founders Institute
•   Professor – DU
•   Advisor for Founders Institute
•   Author – 6 technical books
My Interests

•   Making a difference
•   Helping people – teaching,
    advising, …
•   Building companies
•   Using my talents with
    technology
•   The outdoors
Agenda
• User Definable
• Flexible UI
• Project / POC Goals
• Application Specifics
• Application Design
• Database Specifics
    • ERD
    • Tables
    • Functions
    • Materialized views
User Definable


• Data Driven                              • Trade-offs
   • Drive code based on data                 • Performance
     rather than hard coded
                                              • “Readability” of code
   • Examples
                                              • Too many choices
       • ES valuation model at
         IntelliReal                       • Advantages
       • Partners “turning off” partners      • Quick Turns
         on InteliVideo site
                                              • Testing 100s of models,
• Flexible Database                             variable changes, etc. can all
                                                be done programmatically
   • Do you need the ability to add
                                                (perfect value)
     “columns” without “adding
     columns?”
Flexible UI


• Data Driven                       • My bottom line
   • What page to start at (after      • If I’m doing the original
     login)                              coding or I’m going to make
                                         a change to my code and
   • What partners to show
                                         there is an assumption (i.e.
   • Colors to display                   a hard coded number that I
                                         might put into my code), I
• Easy with Apex                         stop and think
   • Authorization rules                   • Should I add a column to a
                                             table and should I change
   • Display rules at all levels             the code so it points at the
                                             column?
                                           • What level? Per user? Per
                                             customer?
Independent Nation – POC Goals
• Dave read the book
• Called the author – Fipp (John
  Avalon)
• Met with him and discussed the
  concepts
• We met with numerous political
  campaign target market experts
• I developed the software,
  secured data,…
• We did demos to politicians,
  target market people, etc.
• EC2 platform
Political Premise
• Politicians want to share their views with targeted groups of people who
  are voting
• Key target groups (lobstermen, working moms, first time home owners)
    • Identify and find those people
    • Invite them to custom events (per group)
    • Drive custom messages (reduced taxes for lobster, better day care options,
      incentives for buying your first home) – email, text, phone
    • Visit the networkers
Project / POC Goals
• Provide intelligence to political campaigns
• Build a GUI and GIS application (with ApEx)
• Application for Independent Nation, but wanted something we
  could use for any customer with Google map needs
• Application that is dynamic and flexible
• Design and develop application that allows customization by
  changing data, not code.
• Data about people, their properties or addresses they live at, and
  other information about them – yet, stay open for others
Application Specifics
• Independent Nation is a company that specializes in provide
  intelligence about voters to political campaigns
• Data sourcing - merged voter registration, voter contribution and
  numerous other data sources as the starting data set
• Goal was to provide a flexible database design that will allow for
  SIMPLE attribute additions without new coding. New data feeds
  won’t require DB changes.
Application Design
• Developed for Independent Nation
• Every user
   • Starts in a different part of the world
   • Has their own color scheme and search criteria
• Uses Google Maps
   • Could integrate other mapping solutions in
• Database
   • Generic driving table with attributes
   • Not many tables (i.e. simple design)




                                                      12
Political contributors in NJ
• Contributors by party contributed to…




                                          13
Other Visual Searches
Age – Education, Income
Key Tables
• Application Data      • User Driven Data
   • Attribute             • User
   • Category              • User Attribute
   • People                • User Attribute Color
   • People Attribute      • User Option
   • Property              • User Option User
   • People Property
ERD
Attribute Table
• Attributes (fields)     • Parent Attribute

    • Short Description   • Text 1,2

    • Long Description    • Data 1,2
    • Category            • Number 1,2
Category Table
• Categories of          • Add a new category, assign
  Windows/Tabs             it to attribute(s) and it
                           shows up for all of the
   • Category ID
                           people…
   • Short Description
   • Full Description
   • Parent Category
People
• People
   • ID
   • First, Last Name
   • Voter ID
   • Property ID
• People Attribute
   • People ID
   • Attribute ID
   • Start and End Date
   • Source, Integrity
   • Text, Number, Date Values
Properties and People
• Property
   • ID
   • Address
   • Phone, Cell
   • Valuation
   • Lat and Long
• People Property
   • People ID
   • Property ID
   • Start and End Date
User Specific Data
• User Attribute Color
    • Colorization
    • Limiting data
• User Option
    • Saved Filters
    • Descriptions, Include, Exclude
    • Starting map location
• User Option User
    • Users who share a filter
    • Default filter
Functions
• Get_Desc                           • Get_People
   • Gets the description for a         • Brains for everything here
     specific attribute for a
                                        • Pipeline (or table-based)
     specific user
                                          function
• Get_Option
                                        • Finds the people that live
   • Gets the default filter for a        within the lat/long range
     user                                 on the map, matching the
                                          filters
Let’s Add a New Category
• Add the category
• Change attributes to be in the category
• Refresh the Materialized View
• Test it out in the UI
Let’s Create a New Filter
• Education of Too Youngs…
• Color by education level
• Include <18 year olds
• Exclude other age categories
• Save it
List of People Matching
• Uses the same service as the map
• Shows the details
• Can be exported
Search
• Person’s name
• Municipality
• Address
• District
Finds People
• Clicking View shows them on the map
Performance

• Created materialized             • Faster Spatial
  view                               Options
  • PEOPLE_MV                         • Change from
                                        lat/long to spatial
  • Indexed search
                                        column
    columns
                                         • sdo_geometry
• Turned on query re-
                                      • Change query to
  write
                                        use sdo functions
  • ALTER SESSION SET
    query_rewrite_enabled=TRUE;
  • Or…I could have just changed
    queries (people_mv)
How the Maps Works
• AJAX                                 •   select * from
                                           table(cast(get_people(:P6_SW
   • var url = "f?p=&APP_ID.:6:'           _LAT, :P6_NE_LAT,
     || v('app_session') ||                :P6_SW_LONG, :P6_NE_LONG,
     '::::P6_SW_LAT,P6_SW_LO               :P1_COLOR_ATTRIBUTE_ID,
     NG,P6_NE_LAT,P6_NE_LO                 independent_authentication.g
     NG,P6_ZOOM,P6_MAPTYP                  et_user_id(:APP_USER),:P1_IN
     E:" + sw.lat() + "," +                CLUDE_LIST,
     sw.lng() + "," + ne.lat() + ","       :P1_REMOVE_LIST,
     + ne.lng() + "," + zm + "," +         :P1_SHOW_UNCOLORED,
     mt;                                   :P1_PEOPLE_ID,
• See Page 6 in my                         nvl(:P1_ROWS,1000)) as
                                           people_Table))
  application
   • XML Report
   • Cast function as if it’s a
     table
Other Options
• Could use a Cloud provider   • Yahoo Pipes requires data
                                 in XML format
    • Yahoo Pipes
                                  • Can come from ApEx too
    • Google App Engine
                                  • iPerspective
• We put this in a hosted
  environment
    • Amazon EC2
    • MaxApex
BTW – Political Reality
• Politicians don’t decide much of anything
    • Their interns and experts do
• They don’t want to pay for anything
• They do know what groups they want to get to
• They cannot craft a message to them – for fear one
  person will get the wrong message and spread it
• They want to deliver generic messages
• This killed Independent Nation in the end…
Getting Started, then Other Mapping I’ve Done
• Heat Maps
• GeoSearch
• Highlight and Visual Search
• Test Scores within a Radius


• Get Creative!
Google Map Integration
• Easy integration Starts At:
    • http://www.google.com/apis/maps/
• Simple Pushpins:
Heat Maps
• A look at different neighborhood trends in home values
GeoSearch
• Grouping of properties
• Colorized and customizable
Highlight and Visual Search
• Highlight it
• Build your search, see it
Test Scores within a radius
• Visual results
Summary – Building a Flexible UI
• Flexible Database and UI – can overdue it
• Project / POC Goals – sales engine
• Application Specifics – functional
• Application Design - flexible reuse
• Demo for Customers – cool UI
• Database Specifics – data driven app
Questions?
Brad’s Papers and Presentations
• Java-based Oracle Web       • Practical Portal Practices
  Development                 • Implementing JSP in Portal
• Java Server Pages           • UltraSearch
• JavaMail                    • Search Engines
• Java for the PL/SQL         • Utl_smtp and Utl_http
  Developer
                              • iFS
• Web Cache – achieving 150
  the performance             • JavaScript

• 9iAS Installation,          • Top DBA scripts for Web
  Configuration, and Tuning     Developers

• Wireless                    • Security
Copyright Information

• Neither InteliVideo, Rolta TUSC nor the author guarantee this
  document to be error-free. Please provide comments/questions
  to brownb@tusc.com.
• InteliVideo, Rolta TUSC © 2012. This document cannot be
  reproduced without expressed written consent from an officer of
  Rolta or InteliVideo.

Más contenido relacionado

La actualidad más candente

Migrate BI to APEX 5
Migrate BI to APEX 5Migrate BI to APEX 5
Migrate BI to APEX 5Karen Cannell
 
Advanced Reporting And Charting With Oracle Application Express 4.0
Advanced Reporting And Charting With Oracle Application Express 4.0Advanced Reporting And Charting With Oracle Application Express 4.0
Advanced Reporting And Charting With Oracle Application Express 4.0Rinie Romme
 
APEX 5 Interactive Reports: Deep Dive and Upgrade Advice
APEX 5 Interactive Reports: Deep Dive and Upgrade AdviceAPEX 5 Interactive Reports: Deep Dive and Upgrade Advice
APEX 5 Interactive Reports: Deep Dive and Upgrade AdviceKaren Cannell
 
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEXLOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEXEnkitec
 
Oracle APEX Introduction (release 18.1)
Oracle APEX Introduction (release 18.1)Oracle APEX Introduction (release 18.1)
Oracle APEX Introduction (release 18.1)Michael Hichwa
 
Oracle apex training | Oracle Application Application Express Training | Ora...
Oracle apex training | Oracle Application Application Express Training |  Ora...Oracle apex training | Oracle Application Application Express Training |  Ora...
Oracle apex training | Oracle Application Application Express Training | Ora...Nancy Thomas
 
Oracle APEX Dynamic Actions
Oracle APEX Dynamic ActionsOracle APEX Dynamic Actions
Oracle APEX Dynamic ActionsAnthony Rayner
 
APEX Interactive Grid API Essentials: The Stuff You Will Really Use
APEX Interactive Grid API Essentials:  The Stuff You Will Really UseAPEX Interactive Grid API Essentials:  The Stuff You Will Really Use
APEX Interactive Grid API Essentials: The Stuff You Will Really UseKaren Cannell
 
Bootstrapify Universal Theme
Bootstrapify Universal ThemeBootstrapify Universal Theme
Bootstrapify Universal ThemeChristian Rokitta
 
Take a load off! Load testing your Oracle APEX or JDeveloper web applications
Take a load off! Load testing your Oracle APEX or JDeveloper web applicationsTake a load off! Load testing your Oracle APEX or JDeveloper web applications
Take a load off! Load testing your Oracle APEX or JDeveloper web applicationsSage Computing Services
 
Hitchhiker's guide to the Universal Theme
Hitchhiker's guide to the Universal ThemeHitchhiker's guide to the Universal Theme
Hitchhiker's guide to the Universal ThemeChristian Rokitta
 
Oracle APEX Interactive Grid Essentials
Oracle APEX Interactive Grid EssentialsOracle APEX Interactive Grid Essentials
Oracle APEX Interactive Grid EssentialsKaren Cannell
 
Oracle APEX for Beginners
Oracle APEX for BeginnersOracle APEX for Beginners
Oracle APEX for BeginnersDimitri Gielis
 
UNYOUG - APEX 19.2 New Features
UNYOUG - APEX 19.2 New FeaturesUNYOUG - APEX 19.2 New Features
UNYOUG - APEX 19.2 New Featuresmsewtz
 
APEX Boston Meetup - October 1st, 2019
APEX Boston Meetup - October 1st, 2019APEX Boston Meetup - October 1st, 2019
APEX Boston Meetup - October 1st, 2019msewtz
 
Oracle APEX 18.1 New Features
Oracle APEX 18.1 New FeaturesOracle APEX 18.1 New Features
Oracle APEX 18.1 New Featuresmsewtz
 
Automated testing APEX Applications
Automated testing APEX ApplicationsAutomated testing APEX Applications
Automated testing APEX ApplicationsRoel Hartman
 

La actualidad más candente (20)

API ARU-ARU
API ARU-ARUAPI ARU-ARU
API ARU-ARU
 
Apex ace update
Apex ace updateApex ace update
Apex ace update
 
Migrate BI to APEX 5
Migrate BI to APEX 5Migrate BI to APEX 5
Migrate BI to APEX 5
 
Advanced Reporting And Charting With Oracle Application Express 4.0
Advanced Reporting And Charting With Oracle Application Express 4.0Advanced Reporting And Charting With Oracle Application Express 4.0
Advanced Reporting And Charting With Oracle Application Express 4.0
 
Web Development In Oracle APEX
Web Development In Oracle APEXWeb Development In Oracle APEX
Web Development In Oracle APEX
 
APEX 5 Interactive Reports: Deep Dive and Upgrade Advice
APEX 5 Interactive Reports: Deep Dive and Upgrade AdviceAPEX 5 Interactive Reports: Deep Dive and Upgrade Advice
APEX 5 Interactive Reports: Deep Dive and Upgrade Advice
 
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEXLOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
LOBS, BLOBS, CLOBS: Dealing with Attachments in APEX
 
Oracle APEX Introduction (release 18.1)
Oracle APEX Introduction (release 18.1)Oracle APEX Introduction (release 18.1)
Oracle APEX Introduction (release 18.1)
 
Oracle apex training | Oracle Application Application Express Training | Ora...
Oracle apex training | Oracle Application Application Express Training |  Ora...Oracle apex training | Oracle Application Application Express Training |  Ora...
Oracle apex training | Oracle Application Application Express Training | Ora...
 
Oracle APEX Dynamic Actions
Oracle APEX Dynamic ActionsOracle APEX Dynamic Actions
Oracle APEX Dynamic Actions
 
APEX Interactive Grid API Essentials: The Stuff You Will Really Use
APEX Interactive Grid API Essentials:  The Stuff You Will Really UseAPEX Interactive Grid API Essentials:  The Stuff You Will Really Use
APEX Interactive Grid API Essentials: The Stuff You Will Really Use
 
Bootstrapify Universal Theme
Bootstrapify Universal ThemeBootstrapify Universal Theme
Bootstrapify Universal Theme
 
Take a load off! Load testing your Oracle APEX or JDeveloper web applications
Take a load off! Load testing your Oracle APEX or JDeveloper web applicationsTake a load off! Load testing your Oracle APEX or JDeveloper web applications
Take a load off! Load testing your Oracle APEX or JDeveloper web applications
 
Hitchhiker's guide to the Universal Theme
Hitchhiker's guide to the Universal ThemeHitchhiker's guide to the Universal Theme
Hitchhiker's guide to the Universal Theme
 
Oracle APEX Interactive Grid Essentials
Oracle APEX Interactive Grid EssentialsOracle APEX Interactive Grid Essentials
Oracle APEX Interactive Grid Essentials
 
Oracle APEX for Beginners
Oracle APEX for BeginnersOracle APEX for Beginners
Oracle APEX for Beginners
 
UNYOUG - APEX 19.2 New Features
UNYOUG - APEX 19.2 New FeaturesUNYOUG - APEX 19.2 New Features
UNYOUG - APEX 19.2 New Features
 
APEX Boston Meetup - October 1st, 2019
APEX Boston Meetup - October 1st, 2019APEX Boston Meetup - October 1st, 2019
APEX Boston Meetup - October 1st, 2019
 
Oracle APEX 18.1 New Features
Oracle APEX 18.1 New FeaturesOracle APEX 18.1 New Features
Oracle APEX 18.1 New Features
 
Automated testing APEX Applications
Automated testing APEX ApplicationsAutomated testing APEX Applications
Automated testing APEX Applications
 

Similar a Building a Flexible UI with Oracle ApEx

Neo4j Training Introduction
Neo4j Training IntroductionNeo4j Training Introduction
Neo4j Training IntroductionMax De Marzi
 
Data All the Way Down
Data All the Way DownData All the Way Down
Data All the Way DownJeni Tennison
 
Searching Chinese Patents Presentation at Enterprise Data World
Searching Chinese Patents Presentation at Enterprise Data WorldSearching Chinese Patents Presentation at Enterprise Data World
Searching Chinese Patents Presentation at Enterprise Data WorldOpenSource Connections
 
DubJug: Neo4J and Open Data
DubJug: Neo4J and Open DataDubJug: Neo4J and Open Data
DubJug: Neo4J and Open DataScott Sosna
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 KeynotePeter Wang
 
Google App Engine - exploiting limitations
Google App Engine - exploiting limitationsGoogle App Engine - exploiting limitations
Google App Engine - exploiting limitationsTomáš Holas
 
Website Architecture Presentation from Web Strategy Workshops
Website Architecture Presentation from Web Strategy WorkshopsWebsite Architecture Presentation from Web Strategy Workshops
Website Architecture Presentation from Web Strategy WorkshopsCharles Edmunds
 
Scoping call presentation_rev_4_mary
Scoping call presentation_rev_4_maryScoping call presentation_rev_4_mary
Scoping call presentation_rev_4_maryrhochambeau32
 
Crawlable Spatial Data - #Geo4Web research topic #3
Crawlable Spatial Data - #Geo4Web research topic #3Crawlable Spatial Data - #Geo4Web research topic #3
Crawlable Spatial Data - #Geo4Web research topic #3Dimitri van Hees
 
Generating docs from APIs
Generating docs from APIsGenerating docs from APIs
Generating docs from APIsjamiehannaford
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2Neo4j
 
Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Chris Saez
 
iOS Beginners Lesson 1
iOS Beginners Lesson 1iOS Beginners Lesson 1
iOS Beginners Lesson 1Calvin Cheng
 
Presto Summit 2018 - 02 - LinkedIn
Presto Summit 2018  - 02 - LinkedInPresto Summit 2018  - 02 - LinkedIn
Presto Summit 2018 - 02 - LinkedInkbajda
 

Similar a Building a Flexible UI with Oracle ApEx (20)

Lecture3
Lecture3Lecture3
Lecture3
 
MongoDB Basics
MongoDB BasicsMongoDB Basics
MongoDB Basics
 
Neo4j Training Introduction
Neo4j Training IntroductionNeo4j Training Introduction
Neo4j Training Introduction
 
Data All the Way Down
Data All the Way DownData All the Way Down
Data All the Way Down
 
Searching Chinese Patents Presentation at Enterprise Data World
Searching Chinese Patents Presentation at Enterprise Data WorldSearching Chinese Patents Presentation at Enterprise Data World
Searching Chinese Patents Presentation at Enterprise Data World
 
The Developers World
The Developers WorldThe Developers World
The Developers World
 
Web Usability
Web UsabilityWeb Usability
Web Usability
 
Qtr 3 2012 Ppt
Qtr 3 2012 PptQtr 3 2012 Ppt
Qtr 3 2012 Ppt
 
DubJug: Neo4J and Open Data
DubJug: Neo4J and Open DataDubJug: Neo4J and Open Data
DubJug: Neo4J and Open Data
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 Keynote
 
Google App Engine - exploiting limitations
Google App Engine - exploiting limitationsGoogle App Engine - exploiting limitations
Google App Engine - exploiting limitations
 
Website Architecture Presentation from Web Strategy Workshops
Website Architecture Presentation from Web Strategy WorkshopsWebsite Architecture Presentation from Web Strategy Workshops
Website Architecture Presentation from Web Strategy Workshops
 
Scoping call presentation_rev_4_mary
Scoping call presentation_rev_4_maryScoping call presentation_rev_4_mary
Scoping call presentation_rev_4_mary
 
Crawlable Spatial Data - #Geo4Web research topic #3
Crawlable Spatial Data - #Geo4Web research topic #3Crawlable Spatial Data - #Geo4Web research topic #3
Crawlable Spatial Data - #Geo4Web research topic #3
 
Generating docs from APIs
Generating docs from APIsGenerating docs from APIs
Generating docs from APIs
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
 
Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?
 
iOS Beginners Lesson 1
iOS Beginners Lesson 1iOS Beginners Lesson 1
iOS Beginners Lesson 1
 
Presto Summit 2018 - 02 - LinkedIn
Presto Summit 2018  - 02 - LinkedInPresto Summit 2018  - 02 - LinkedIn
Presto Summit 2018 - 02 - LinkedIn
 
2 Day Android Workshop
2 Day Android Workshop2 Day Android Workshop
2 Day Android Workshop
 

Más de Bradley Brown

Video Anytime AnyWhere AnyDevice
Video Anytime AnyWhere AnyDeviceVideo Anytime AnyWhere AnyDevice
Video Anytime AnyWhere AnyDeviceBradley Brown
 
Anytime anywhere any device
Anytime anywhere any deviceAnytime anywhere any device
Anytime anywhere any deviceBradley Brown
 
InteliVideo Analytics Revised
InteliVideo Analytics RevisedInteliVideo Analytics Revised
InteliVideo Analytics RevisedBradley Brown
 
InteliVideo analytics
InteliVideo analyticsInteliVideo analytics
InteliVideo analyticsBradley Brown
 
Do you need a video platform?
Do you need a video platform?Do you need a video platform?
Do you need a video platform?Bradley Brown
 
A CTOs Perspective on Agile
A CTOs Perspective on AgileA CTOs Perspective on Agile
A CTOs Perspective on AgileBradley Brown
 
CTOs Perspective on Adding Geospatial and Location-based Information
CTOs Perspective on Adding Geospatial and Location-based InformationCTOs Perspective on Adding Geospatial and Location-based Information
CTOs Perspective on Adding Geospatial and Location-based InformationBradley Brown
 

Más de Bradley Brown (7)

Video Anytime AnyWhere AnyDevice
Video Anytime AnyWhere AnyDeviceVideo Anytime AnyWhere AnyDevice
Video Anytime AnyWhere AnyDevice
 
Anytime anywhere any device
Anytime anywhere any deviceAnytime anywhere any device
Anytime anywhere any device
 
InteliVideo Analytics Revised
InteliVideo Analytics RevisedInteliVideo Analytics Revised
InteliVideo Analytics Revised
 
InteliVideo analytics
InteliVideo analyticsInteliVideo analytics
InteliVideo analytics
 
Do you need a video platform?
Do you need a video platform?Do you need a video platform?
Do you need a video platform?
 
A CTOs Perspective on Agile
A CTOs Perspective on AgileA CTOs Perspective on Agile
A CTOs Perspective on Agile
 
CTOs Perspective on Adding Geospatial and Location-based Information
CTOs Perspective on Adding Geospatial and Location-based InformationCTOs Perspective on Adding Geospatial and Location-based Information
CTOs Perspective on Adding Geospatial and Location-based Information
 

Último

CapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapitolTechU
 
How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17Celine George
 
Practical Research 1 Lesson 9 Scope and delimitation.pptx
Practical Research 1 Lesson 9 Scope and delimitation.pptxPractical Research 1 Lesson 9 Scope and delimitation.pptx
Practical Research 1 Lesson 9 Scope and delimitation.pptxKatherine Villaluna
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxDr. Asif Anas
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17Celine George
 
What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?TechSoup
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfTechSoup
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxiammrhaywood
 
How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17Celine George
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17Celine George
 
Quality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICEQuality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICESayali Powar
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptxraviapr7
 
Education and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxEducation and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxraviapr7
 
Human-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesHuman-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesMohammad Hassany
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxSaurabhParmar42
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxDr. Santhosh Kumar. N
 
Presentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphPresentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphNetziValdelomar1
 
The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsEugene Lysak
 

Último (20)

CapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptx
 
How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17
 
Practical Research 1 Lesson 9 Scope and delimitation.pptx
Practical Research 1 Lesson 9 Scope and delimitation.pptxPractical Research 1 Lesson 9 Scope and delimitation.pptx
Practical Research 1 Lesson 9 Scope and delimitation.pptx
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptx
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17
 
What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
 
How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17
 
Quality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICEQuality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICE
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
 
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdfPersonal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
 
Education and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxEducation and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptx
 
Human-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesHuman-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming Classes
 
Finals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quizFinals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quiz
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptx
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptx
 
Presentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphPresentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a Paragraph
 
The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George Wells
 

Building a Flexible UI with Oracle ApEx

  • 1. Building A User-Definable, Flexible UI with Oracle Application Express (ApEx) By Bradley D. Brown, InteliVideo
  • 2. Who am I? • Bradley D. Brown • Today http://bradleydbrown.blogspot.com • InteliVideo in April 2012 • Founder • Video Monetization Platform • TUSC in 1988 • Built it to sell training online • Sold to Rolta in 2008 • Focused on mid and long tail and corporate deals • IntelliReal in 2005 • ApEx provides a “quick turns” • Sold to Equifax in 2011 approach to our offering • 10+ other companies, boards • Founders Institute • Professor – DU • Advisor for Founders Institute • Author – 6 technical books
  • 3. My Interests • Making a difference • Helping people – teaching, advising, … • Building companies • Using my talents with technology • The outdoors
  • 4. Agenda • User Definable • Flexible UI • Project / POC Goals • Application Specifics • Application Design • Database Specifics • ERD • Tables • Functions • Materialized views
  • 5. User Definable • Data Driven • Trade-offs • Drive code based on data • Performance rather than hard coded • “Readability” of code • Examples • Too many choices • ES valuation model at IntelliReal • Advantages • Partners “turning off” partners • Quick Turns on InteliVideo site • Testing 100s of models, • Flexible Database variable changes, etc. can all be done programmatically • Do you need the ability to add (perfect value) “columns” without “adding columns?”
  • 6. Flexible UI • Data Driven • My bottom line • What page to start at (after • If I’m doing the original login) coding or I’m going to make a change to my code and • What partners to show there is an assumption (i.e. • Colors to display a hard coded number that I might put into my code), I • Easy with Apex stop and think • Authorization rules • Should I add a column to a table and should I change • Display rules at all levels the code so it points at the column? • What level? Per user? Per customer?
  • 7. Independent Nation – POC Goals • Dave read the book • Called the author – Fipp (John Avalon) • Met with him and discussed the concepts • We met with numerous political campaign target market experts • I developed the software, secured data,… • We did demos to politicians, target market people, etc. • EC2 platform
  • 8. Political Premise • Politicians want to share their views with targeted groups of people who are voting • Key target groups (lobstermen, working moms, first time home owners) • Identify and find those people • Invite them to custom events (per group) • Drive custom messages (reduced taxes for lobster, better day care options, incentives for buying your first home) – email, text, phone • Visit the networkers
  • 9. Project / POC Goals • Provide intelligence to political campaigns • Build a GUI and GIS application (with ApEx) • Application for Independent Nation, but wanted something we could use for any customer with Google map needs • Application that is dynamic and flexible • Design and develop application that allows customization by changing data, not code. • Data about people, their properties or addresses they live at, and other information about them – yet, stay open for others
  • 10. Application Specifics • Independent Nation is a company that specializes in provide intelligence about voters to political campaigns • Data sourcing - merged voter registration, voter contribution and numerous other data sources as the starting data set • Goal was to provide a flexible database design that will allow for SIMPLE attribute additions without new coding. New data feeds won’t require DB changes.
  • 11. Application Design • Developed for Independent Nation • Every user • Starts in a different part of the world • Has their own color scheme and search criteria • Uses Google Maps • Could integrate other mapping solutions in • Database • Generic driving table with attributes • Not many tables (i.e. simple design) 12
  • 12. Political contributors in NJ • Contributors by party contributed to… 13
  • 13. Other Visual Searches Age – Education, Income
  • 14. Key Tables • Application Data • User Driven Data • Attribute • User • Category • User Attribute • People • User Attribute Color • People Attribute • User Option • Property • User Option User • People Property
  • 15. ERD
  • 16. Attribute Table • Attributes (fields) • Parent Attribute • Short Description • Text 1,2 • Long Description • Data 1,2 • Category • Number 1,2
  • 17. Category Table • Categories of • Add a new category, assign Windows/Tabs it to attribute(s) and it shows up for all of the • Category ID people… • Short Description • Full Description • Parent Category
  • 18. People • People • ID • First, Last Name • Voter ID • Property ID • People Attribute • People ID • Attribute ID • Start and End Date • Source, Integrity • Text, Number, Date Values
  • 19. Properties and People • Property • ID • Address • Phone, Cell • Valuation • Lat and Long • People Property • People ID • Property ID • Start and End Date
  • 20. User Specific Data • User Attribute Color • Colorization • Limiting data • User Option • Saved Filters • Descriptions, Include, Exclude • Starting map location • User Option User • Users who share a filter • Default filter
  • 21. Functions • Get_Desc • Get_People • Gets the description for a • Brains for everything here specific attribute for a • Pipeline (or table-based) specific user function • Get_Option • Finds the people that live • Gets the default filter for a within the lat/long range user on the map, matching the filters
  • 22. Let’s Add a New Category • Add the category • Change attributes to be in the category • Refresh the Materialized View • Test it out in the UI
  • 23. Let’s Create a New Filter • Education of Too Youngs… • Color by education level • Include <18 year olds • Exclude other age categories • Save it
  • 24. List of People Matching • Uses the same service as the map • Shows the details • Can be exported
  • 25. Search • Person’s name • Municipality • Address • District
  • 26. Finds People • Clicking View shows them on the map
  • 27. Performance • Created materialized • Faster Spatial view Options • PEOPLE_MV • Change from lat/long to spatial • Indexed search column columns • sdo_geometry • Turned on query re- • Change query to write use sdo functions • ALTER SESSION SET query_rewrite_enabled=TRUE; • Or…I could have just changed queries (people_mv)
  • 28. How the Maps Works • AJAX • select * from table(cast(get_people(:P6_SW • var url = "f?p=&APP_ID.:6:' _LAT, :P6_NE_LAT, || v('app_session') || :P6_SW_LONG, :P6_NE_LONG, '::::P6_SW_LAT,P6_SW_LO :P1_COLOR_ATTRIBUTE_ID, NG,P6_NE_LAT,P6_NE_LO independent_authentication.g NG,P6_ZOOM,P6_MAPTYP et_user_id(:APP_USER),:P1_IN E:" + sw.lat() + "," + CLUDE_LIST, sw.lng() + "," + ne.lat() + "," :P1_REMOVE_LIST, + ne.lng() + "," + zm + "," + :P1_SHOW_UNCOLORED, mt; :P1_PEOPLE_ID, • See Page 6 in my nvl(:P1_ROWS,1000)) as people_Table)) application • XML Report • Cast function as if it’s a table
  • 29. Other Options • Could use a Cloud provider • Yahoo Pipes requires data in XML format • Yahoo Pipes • Can come from ApEx too • Google App Engine • iPerspective • We put this in a hosted environment • Amazon EC2 • MaxApex
  • 30. BTW – Political Reality • Politicians don’t decide much of anything • Their interns and experts do • They don’t want to pay for anything • They do know what groups they want to get to • They cannot craft a message to them – for fear one person will get the wrong message and spread it • They want to deliver generic messages • This killed Independent Nation in the end…
  • 31. Getting Started, then Other Mapping I’ve Done • Heat Maps • GeoSearch • Highlight and Visual Search • Test Scores within a Radius • Get Creative!
  • 32. Google Map Integration • Easy integration Starts At: • http://www.google.com/apis/maps/ • Simple Pushpins:
  • 33. Heat Maps • A look at different neighborhood trends in home values
  • 34. GeoSearch • Grouping of properties • Colorized and customizable
  • 35. Highlight and Visual Search • Highlight it • Build your search, see it
  • 36. Test Scores within a radius • Visual results
  • 37. Summary – Building a Flexible UI • Flexible Database and UI – can overdue it • Project / POC Goals – sales engine • Application Specifics – functional • Application Design - flexible reuse • Demo for Customers – cool UI • Database Specifics – data driven app
  • 39. Brad’s Papers and Presentations • Java-based Oracle Web • Practical Portal Practices Development • Implementing JSP in Portal • Java Server Pages • UltraSearch • JavaMail • Search Engines • Java for the PL/SQL • Utl_smtp and Utl_http Developer • iFS • Web Cache – achieving 150 the performance • JavaScript • 9iAS Installation, • Top DBA scripts for Web Configuration, and Tuning Developers • Wireless • Security
  • 40. Copyright Information • Neither InteliVideo, Rolta TUSC nor the author guarantee this document to be error-free. Please provide comments/questions to brownb@tusc.com. • InteliVideo, Rolta TUSC © 2012. This document cannot be reproduced without expressed written consent from an officer of Rolta or InteliVideo.