12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Banner XE with
Localizations/Modifications
Sustainable XE Application Mods
Dale Ganus, Jorge Baquero, Trey Reynolds
Texas Tech University System
April 13, 2015
12130
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Introduction – Who are We?
• Texas Tech University System
• Almost three institutions in one instance of Banner
• 40,000 total students
• Finance/HR/FA/Student/Student A/R
• Many other Ellucian products
• Many third party products
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Introduction – Our Motivation
• Experience with XE mods
• What has worked and what hasn’t
• Share a methodology that will cover a large percentage of all
modifications you might want to make.
• Work with Ellucian extensibility tools and evolve as more
become available.
• Share and learn from others to expand this approach.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
1 XE Software lifecycle at Texas Tech
2 Motivation for sustainable modifications
3 Examples of current Texas Tech mods
4 Development Methodology
5 Security Model Concerns
6 Q & A – Technical Questions Encouraged
Presentation Agenda
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
1. XE Lifecycle at Texas Tech
How code and installation is handled.
Jorge Baquero
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
XE Lifecycle – Source Code & Installation
Application Name Current
Version
in Test
UI Mod List of Current
Modifications
WAR Current
Version in
TTUSPRD
Prod
First time
Last
Deployed
Faculty Attendance
Tracking SSB
9.1.0.2 Y 9.1.0.2 9.1.0.1 7/13/2013 Mar 2015
Student Advisor SSB 9.1 Y 9.3 9.3 6/29/2014 Mar 2015
Student Attendance
Tracking
9.1.0.1 Y 9.1.0.1 9.1.0.1 7/13/2013 Oct 2014
Student Attendance
Tracking SSB
9.1.0.1 Y 9.1.0.1 9.1.0.1 7/13/2013 Oct 2014
Faculty Grade Entry 9.3.0.1 Y Y · Graduation Cap 9.3.0.1 9.3 9/23/2012 Mar 2014
Student Overall
9.3 Y 9.3 9.2 6/29/2014 Mar 2015
Student Registration 9.2.0.1 Y 9.2.0.1 9.2.0.1 2/23/2014 Mar 2015
Student Registration SSB
9.1.0.2 Y Y Registration
intermediate step
Drop Limit Filter
Class Fees
9.1.0.2 9.1.0.2 2/23/2014 Jan 2015
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
XE Lifecycle – Git Control
Master
TTU GIT
SERVER
TTU
Remotes: ellucian
origin
Implementation Deployment
Localizations and UI:
WAR file and installation
UI: Installation process
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
XE Lifecycle – Git Submodule Based Development
Architecture Based on XE Plugins.
o Plugin is a git repository
maintained separately and
included in the application.
o Command to add the
submodule:
Banner XE App Repo – TTU Branch
plugins/banner_core.git
plugins/banner_general_person.git
plugins/banner_ui_ss.git
…
plugins/ttu_appname_mod.git
GITSUBMODULES
git submodule add
ssh://git@server/ttu_appname_mod
./plugins/ttu_appname_mod
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
2. Motivation for sustainable mods.
Our intentions around this style of
modifications.
Trey Reynolds - Developer
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Motivation for our approach to sustainable modifications
• History of Banner 8 mods
reapplied regularly.
o This results in shaky
construction.
• Strict separation of
concerns.
• No interference with
baseline code execution.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Motivations (continued)
• Create a way to utilize some already developed database
packages / procedures / functions.
o Save time
o Ensure identical behavior (e.g. Texas drop limit requirement)
• Bridge the gap between a full rewrite and existing work.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
3. Examples of Texas Tech mods
Some of the changes we’ve made so far.
Trey Reynolds – Developer
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Mods: Student Registration SSB
• Added step to the registration process -- “Agreements”
o Payment Agreement, Electronic Comm. Consent, Fixed Tuition Option.
• Drop Limit Filter
o Apply a limit to the number of dropped classes.
• Display Class Fees Only After Fee Assess
• Not require student PIN entry for advisors.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Student Registration SSB: Agreements Screen
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Student Registration SSB: Drop Limit
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Student Registration SSB: Class Fees
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Mods: Faculty Grade Entry
• Graduation Cap
Change:
o Adds an indicator icon
next to students
graduation this semester
on the grade roll.
o Accomplished with
javascript injection.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
4. Development Methodology
How does this work? Technical discussion.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Development Methodology
Development Phase 
Production Phase 
• Create in-place plugin and
make it a git project
• Develop the plugin in the
application
• Package the plugin and
make it part of the
installation process.
o Separate from the source
code dev process.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Modification Structure Overview
• Three different strategies
for creating sustainable
changes.
o Javascript injection.
o Self contained plugin MVC
architecture.
o Logic changes with filters.
• Include inline plugin in
project.
/grails-app/conf/BuildConfig.groovy
Application Structure
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Modification Plugin - Controllers & Services
• Controller and service code specific to
TTU app modifications.
• Multiple services and/or controllers so
that all modifications to one app exist in
the same plugin.
o Plugin contains its own unit/integration tests.
o Uses stock grails functionality for reusability
and readability.*
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Modification Plugin – Javascript Injection
• Uses resource overrides to inject
Javascript on a specific page.
• Javascript and CSS modifications can
be used to change most page behavior.
o Some developer investigation required.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Program Logic Flow Changes Using Grails Filters
• Overrides logic of a certain controller
and action using grails filter.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
5. Security Concerns
How to make sure you can use the fancy new logic you
just created in a domains/controller/service.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Spring Security Class for Controllers
• Security for most modifications is simple.
• For AJAX calls to REST service exposed via controller:
o Declare the controller in the config.groovy of the parent application:
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Summary
• Sustainable modifications means:
o Not having to manage heavy git merges.
o No exhausting searches for modified code and implications.
o Easier testing of code with and without mods.
• This should cover a large set of the more complex mods.
• There may still be a need to change core code.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Questions & Answers
Feel free to ask technical questions.
That’s why Trey is here.
12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID
Thank you!
Dale Ganus Jorge Baquero Trey Reynolds
dale.ganus@ttu.edu jorge.baquero@ttu.edu trey.reynolds@ttu.edu
Please complete the online session evaluation form.
• Via your registration account Log into your registration account at
https://ellucianlive2015.smarteventscloud.com/connect/
publicDashboard.ww
• choose the link to “Surveys””
Session ID 12130

12130

  • 1.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Banner XE with Localizations/Modifications Sustainable XE Application Mods Dale Ganus, Jorge Baquero, Trey Reynolds Texas Tech University System April 13, 2015 12130
  • 2.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Introduction – Who are We? • Texas Tech University System • Almost three institutions in one instance of Banner • 40,000 total students • Finance/HR/FA/Student/Student A/R • Many other Ellucian products • Many third party products
  • 3.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Introduction – Our Motivation • Experience with XE mods • What has worked and what hasn’t • Share a methodology that will cover a large percentage of all modifications you might want to make. • Work with Ellucian extensibility tools and evolve as more become available. • Share and learn from others to expand this approach.
  • 4.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID 1 XE Software lifecycle at Texas Tech 2 Motivation for sustainable modifications 3 Examples of current Texas Tech mods 4 Development Methodology 5 Security Model Concerns 6 Q & A – Technical Questions Encouraged Presentation Agenda
  • 5.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID 1. XE Lifecycle at Texas Tech How code and installation is handled. Jorge Baquero
  • 6.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID XE Lifecycle – Source Code & Installation Application Name Current Version in Test UI Mod List of Current Modifications WAR Current Version in TTUSPRD Prod First time Last Deployed Faculty Attendance Tracking SSB 9.1.0.2 Y 9.1.0.2 9.1.0.1 7/13/2013 Mar 2015 Student Advisor SSB 9.1 Y 9.3 9.3 6/29/2014 Mar 2015 Student Attendance Tracking 9.1.0.1 Y 9.1.0.1 9.1.0.1 7/13/2013 Oct 2014 Student Attendance Tracking SSB 9.1.0.1 Y 9.1.0.1 9.1.0.1 7/13/2013 Oct 2014 Faculty Grade Entry 9.3.0.1 Y Y · Graduation Cap 9.3.0.1 9.3 9/23/2012 Mar 2014 Student Overall 9.3 Y 9.3 9.2 6/29/2014 Mar 2015 Student Registration 9.2.0.1 Y 9.2.0.1 9.2.0.1 2/23/2014 Mar 2015 Student Registration SSB 9.1.0.2 Y Y Registration intermediate step Drop Limit Filter Class Fees 9.1.0.2 9.1.0.2 2/23/2014 Jan 2015
  • 7.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID XE Lifecycle – Git Control Master TTU GIT SERVER TTU Remotes: ellucian origin Implementation Deployment Localizations and UI: WAR file and installation UI: Installation process
  • 8.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID XE Lifecycle – Git Submodule Based Development Architecture Based on XE Plugins. o Plugin is a git repository maintained separately and included in the application. o Command to add the submodule: Banner XE App Repo – TTU Branch plugins/banner_core.git plugins/banner_general_person.git plugins/banner_ui_ss.git … plugins/ttu_appname_mod.git GITSUBMODULES git submodule add ssh://git@server/ttu_appname_mod ./plugins/ttu_appname_mod
  • 9.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID 2. Motivation for sustainable mods. Our intentions around this style of modifications. Trey Reynolds - Developer
  • 10.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Motivation for our approach to sustainable modifications • History of Banner 8 mods reapplied regularly. o This results in shaky construction. • Strict separation of concerns. • No interference with baseline code execution.
  • 11.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Motivations (continued) • Create a way to utilize some already developed database packages / procedures / functions. o Save time o Ensure identical behavior (e.g. Texas drop limit requirement) • Bridge the gap between a full rewrite and existing work.
  • 12.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID 3. Examples of Texas Tech mods Some of the changes we’ve made so far. Trey Reynolds – Developer
  • 13.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Mods: Student Registration SSB • Added step to the registration process -- “Agreements” o Payment Agreement, Electronic Comm. Consent, Fixed Tuition Option. • Drop Limit Filter o Apply a limit to the number of dropped classes. • Display Class Fees Only After Fee Assess • Not require student PIN entry for advisors.
  • 14.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Student Registration SSB: Agreements Screen
  • 15.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Student Registration SSB: Drop Limit
  • 16.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Student Registration SSB: Class Fees
  • 17.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Mods: Faculty Grade Entry • Graduation Cap Change: o Adds an indicator icon next to students graduation this semester on the grade roll. o Accomplished with javascript injection.
  • 18.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID 4. Development Methodology How does this work? Technical discussion.
  • 19.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Development Methodology Development Phase  Production Phase  • Create in-place plugin and make it a git project • Develop the plugin in the application • Package the plugin and make it part of the installation process. o Separate from the source code dev process.
  • 20.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Modification Structure Overview • Three different strategies for creating sustainable changes. o Javascript injection. o Self contained plugin MVC architecture. o Logic changes with filters. • Include inline plugin in project. /grails-app/conf/BuildConfig.groovy Application Structure
  • 21.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Modification Plugin - Controllers & Services • Controller and service code specific to TTU app modifications. • Multiple services and/or controllers so that all modifications to one app exist in the same plugin. o Plugin contains its own unit/integration tests. o Uses stock grails functionality for reusability and readability.*
  • 22.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Modification Plugin – Javascript Injection • Uses resource overrides to inject Javascript on a specific page. • Javascript and CSS modifications can be used to change most page behavior. o Some developer investigation required.
  • 23.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Program Logic Flow Changes Using Grails Filters • Overrides logic of a certain controller and action using grails filter.
  • 24.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID 5. Security Concerns How to make sure you can use the fancy new logic you just created in a domains/controller/service.
  • 25.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Spring Security Class for Controllers • Security for most modifications is simple. • For AJAX calls to REST service exposed via controller: o Declare the controller in the config.groovy of the parent application:
  • 26.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Summary • Sustainable modifications means: o Not having to manage heavy git merges. o No exhausting searches for modified code and implications. o Easier testing of code with and without mods. • This should cover a large set of the more complex mods. • There may still be a need to change core code.
  • 27.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Questions & Answers Feel free to ask technical questions. That’s why Trey is here.
  • 28.
    12130© 2015 ELLUCIAN.CONFIDENTIAL & PROPRIETARY | Session ID Thank you! Dale Ganus Jorge Baquero Trey Reynolds dale.ganus@ttu.edu jorge.baquero@ttu.edu trey.reynolds@ttu.edu Please complete the online session evaluation form. • Via your registration account Log into your registration account at https://ellucianlive2015.smarteventscloud.com/connect/ publicDashboard.ww • choose the link to “Surveys”” Session ID 12130