SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
AUFaculty – Developer’s Guide
Akdeniz University Faculty Information System Development Project
ORÇUN DAYIBAŞ
JULY, 2014
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Outline
 Development Environment
 GWT Framework
 General (Non-functional) Requirements
 UiBinder
 GWT-Bootstrap
 EventBus
 MyBatis
 Big Picture
 Project Life-cycle
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
GWT Framework
 Compiles your Java UI codes into optimized JavaScript ones.
 Resulting code is HTML+JavaScript+CSS. Thus, very easy to deploy.
 GUI components are very close to Java Swing specification; smooth
learning curve.
 Ultimate goal: integrating Java developers from diverse areas to
web application development domain.
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Development Environment
JDK 1.7u55
Eclipse 4.3.2
Maven 3.2.1 (External)
m2e 1.4.0
Subversive SVN 1.1.3 (SVN Kit 1.6)
Google Plugin for Eclipse 3.5.1
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Development Environment
 Thanks to Maven; developers are free to use different Operating Systems.
 1: Deployment scripts (Win: deploy.bat, Linux: deploy.sh)
 2: Maven definition of the project (SVN repository does not include Eclipse/NetBeans project;
they are local and private for each developers).
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
General (Non-functional) Requirements
 GWT Application (The executives’ decision).
 Software architecture shall be very modular (The development
team is subject to heavily change).
 DBMS is MS SQL Server (Huge legacy data and hard to migrate).
 Mobile and Desktop uses are equality important.
 Good UX (User Experience) design is very important (Diverse user
groups).
 DB schema is subject to change.
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
UiBinder
 A solution to support modularity by separating UI and Business
Logic codes.
 Almost de facto for modern GWT applications.
 Each View consists of two parts:
AbcView.ui.xml: Declarative user interface code.
AbcView.java: Business logic of concerning user interface.
More info:
http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
UiBinder
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
GWT-Bootstrap
 Out of the box GWT widgets lack of responsive UX (Mobile
performance of these widgets are still in question).
 Twitter Bootstrap is a de facto solution in responsive web
application development.
 GWT-Bootstrap wraps the twitter bootstrap components as GWT
widgets.
 Additional namespaces to UiBinder: b, bb.
 More info: http://gwtbootstrap.github.io/
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
EventBus
 Supports modularity by decreasing boilerplate codes (also makes
easier inter-object communication in the software).
 Based on Google Guava EventBus framework.
 LOC and complexity decrease dramatically.
 Sniffing (to debug) object interactions is easy.
 EventBus in GWT Sample:
http://www.youtube.com/watch?v=2939gdrNymg
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
MyBatis
 An ORM solution to abstract DB layer from the other layers of
application.
 Based on iBatis (the developers are also same).
 Unlike the other common ORM solutions, MyBatis maps the
methods to queries.
 More info: https://code.google.com/p/mybatis/
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Big Picture
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Project Life-cycle
 Trac is configured and deployed as a project management tool (SVN
repo is integrated).
 Pilot project is AUFaculty but it’s ready to be used in other projects
too.
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Project Life-cycle
 Jenkins CI server is configured and deployed as a build server.
 Defect/task management, release planning, etc…
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Project Life-cycle
 JavaDoc is also generated after each built and resulting documents
are at the disposal of the development team.
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Project Life-cycle
 The project is built at 23:00
every day.
If it’s successful, it is also
deployed to the application
server.
Lets the developers know any
broken build with a
notification e-mail.
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Thank you…
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Contenu connexe

Similaire à AUFaculty: A Case Study for Responsive GWT Application Development

Essentials of Hosting Platforms.pptx
Essentials of Hosting Platforms.pptxEssentials of Hosting Platforms.pptx
Essentials of Hosting Platforms.pptx
Atharva Joshi
 
codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010
Intland Software GmbH
 
S Kumar Resume
S Kumar ResumeS Kumar Resume
S Kumar Resume
S Kumar
 
Software Development Lifecycle interactive powerpoint
Software Development Lifecycle interactive powerpointSoftware Development Lifecycle interactive powerpoint
Software Development Lifecycle interactive powerpoint
Thendo Tshikota
 

Similaire à AUFaculty: A Case Study for Responsive GWT Application Development (20)

44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511fa44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511fa
 
What Are The Top 5 Progressive Web App Development Frameworks For 2023
What Are The Top 5 Progressive Web App Development Frameworks For 2023What Are The Top 5 Progressive Web App Development Frameworks For 2023
What Are The Top 5 Progressive Web App Development Frameworks For 2023
 
Top 10 Frameworks Programmers Should Learn in 2020
Top 10 Frameworks Programmers Should Learn in 2020Top 10 Frameworks Programmers Should Learn in 2020
Top 10 Frameworks Programmers Should Learn in 2020
 
CV_AmalMandal
CV_AmalMandalCV_AmalMandal
CV_AmalMandal
 
Essentials of Hosting Platforms.pptx
Essentials of Hosting Platforms.pptxEssentials of Hosting Platforms.pptx
Essentials of Hosting Platforms.pptx
 
Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2
 
codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010
 
Drupal for Mobile
Drupal for MobileDrupal for Mobile
Drupal for Mobile
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
S Kumar Resume
S Kumar ResumeS Kumar Resume
S Kumar Resume
 
Spring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionSpring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – Introduction
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
 
12 amazing Reasons to Choose VueJS for Building Promising Web Applications
12 amazing Reasons to Choose VueJS for Building Promising Web Applications12 amazing Reasons to Choose VueJS for Building Promising Web Applications
12 amazing Reasons to Choose VueJS for Building Promising Web Applications
 
AngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web ApplicationsAngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web Applications
 
Javantura Zagreb 2014 - universAAL - Andrej Grgurić
Javantura Zagreb 2014 - universAAL - Andrej GrgurićJavantura Zagreb 2014 - universAAL - Andrej Grgurić
Javantura Zagreb 2014 - universAAL - Andrej Grgurić
 
Software Development Lifecycle interactive powerpoint
Software Development Lifecycle interactive powerpointSoftware Development Lifecycle interactive powerpoint
Software Development Lifecycle interactive powerpoint
 
Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3
 
Exploring Microservices Architecture with Spring Boot
Exploring Microservices Architecture with Spring BootExploring Microservices Architecture with Spring Boot
Exploring Microservices Architecture with Spring Boot
 
Why Choose Vue.js For Web Development Projects.pptx
Why Choose Vue.js For Web Development Projects.pptxWhy Choose Vue.js For Web Development Projects.pptx
Why Choose Vue.js For Web Development Projects.pptx
 
Report
ReportReport
Report
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Dernier (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

AUFaculty: A Case Study for Responsive GWT Application Development

  • 1. AUFaculty – Developer’s Guide Akdeniz University Faculty Information System Development Project ORÇUN DAYIBAŞ JULY, 2014 AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 2. Outline  Development Environment  GWT Framework  General (Non-functional) Requirements  UiBinder  GWT-Bootstrap  EventBus  MyBatis  Big Picture  Project Life-cycle AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 3. GWT Framework  Compiles your Java UI codes into optimized JavaScript ones.  Resulting code is HTML+JavaScript+CSS. Thus, very easy to deploy.  GUI components are very close to Java Swing specification; smooth learning curve.  Ultimate goal: integrating Java developers from diverse areas to web application development domain. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 4. Development Environment JDK 1.7u55 Eclipse 4.3.2 Maven 3.2.1 (External) m2e 1.4.0 Subversive SVN 1.1.3 (SVN Kit 1.6) Google Plugin for Eclipse 3.5.1 AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 5. Development Environment  Thanks to Maven; developers are free to use different Operating Systems.  1: Deployment scripts (Win: deploy.bat, Linux: deploy.sh)  2: Maven definition of the project (SVN repository does not include Eclipse/NetBeans project; they are local and private for each developers). AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 6. General (Non-functional) Requirements  GWT Application (The executives’ decision).  Software architecture shall be very modular (The development team is subject to heavily change).  DBMS is MS SQL Server (Huge legacy data and hard to migrate).  Mobile and Desktop uses are equality important.  Good UX (User Experience) design is very important (Diverse user groups).  DB schema is subject to change. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 7. UiBinder  A solution to support modularity by separating UI and Business Logic codes.  Almost de facto for modern GWT applications.  Each View consists of two parts: AbcView.ui.xml: Declarative user interface code. AbcView.java: Business logic of concerning user interface. More info: http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 8. UiBinder AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 9. GWT-Bootstrap  Out of the box GWT widgets lack of responsive UX (Mobile performance of these widgets are still in question).  Twitter Bootstrap is a de facto solution in responsive web application development.  GWT-Bootstrap wraps the twitter bootstrap components as GWT widgets.  Additional namespaces to UiBinder: b, bb.  More info: http://gwtbootstrap.github.io/ AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 10. EventBus  Supports modularity by decreasing boilerplate codes (also makes easier inter-object communication in the software).  Based on Google Guava EventBus framework.  LOC and complexity decrease dramatically.  Sniffing (to debug) object interactions is easy.  EventBus in GWT Sample: http://www.youtube.com/watch?v=2939gdrNymg AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 11. MyBatis  An ORM solution to abstract DB layer from the other layers of application.  Based on iBatis (the developers are also same).  Unlike the other common ORM solutions, MyBatis maps the methods to queries.  More info: https://code.google.com/p/mybatis/ AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 12. Big Picture AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 13. Project Life-cycle  Trac is configured and deployed as a project management tool (SVN repo is integrated).  Pilot project is AUFaculty but it’s ready to be used in other projects too. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 14. Project Life-cycle  Jenkins CI server is configured and deployed as a build server.  Defect/task management, release planning, etc… AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 15. Project Life-cycle  JavaDoc is also generated after each built and resulting documents are at the disposal of the development team. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 16. Project Life-cycle  The project is built at 23:00 every day. If it’s successful, it is also deployed to the application server. Lets the developers know any broken build with a notification e-mail. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  • 17. Thank you… AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014