AUFaculty – Developer’s GuideAkdeniz 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; smoothlearning curve.
Ultimate goal: integrating Java developers from diverse areas toweb application development domain.
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Development EnvironmentJDK 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
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
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