SlideShare a Scribd company logo
1 of 40
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.

More Related Content

What's hot

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
 

What's hot (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 to 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 to 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
 

More from 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
 

More from 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
 

Recently uploaded

Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptxDhatriParmar
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17Celine George
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQuiz Club NITW
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxDhatriParmar
 
week 1 cookery 8 fourth - quarter .pptx
week 1 cookery 8  fourth  -  quarter .pptxweek 1 cookery 8  fourth  -  quarter .pptx
week 1 cookery 8 fourth - quarter .pptxJonalynLegaspi2
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWQuiz Club NITW
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 

Recently uploaded (20)

Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
 
week 1 cookery 8 fourth - quarter .pptx
week 1 cookery 8  fourth  -  quarter .pptxweek 1 cookery 8  fourth  -  quarter .pptx
week 1 cookery 8 fourth - quarter .pptx
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITW
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 

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.