The Garden Bird Survey project is a complete, fully functional, reference web application built using Scala, the Play Framework and AngularJS backed by a PostgreSQL database.
This project uses the current versions, as of January 2019, of Scala and the 2.x Play Framework.
The application is responsive for desktop, tablet and mobile use, and comprises a single-page user interface with dynamic content built using HTML5 and AngularJS.
A public RESTful API, including Hypermedia as the Engine of Applications State (HATEOAS), with full API documentation via RAML also provided.
Key Architectural Features
This application demonstrates key features commonly found in business web applications:
- Single Page Web Application with dynamic AJAX page updates
- Security/authentication model with cross-site request forgery protection
- Role based authorisation and feature toggles, i.e. easy ability to enable/disable application features on the fly
- RESTful JSON web services API, with Hypermedia As The Engine Of Application State (HATEOAS)
- Middle-tier implemented entirely in Scala, with some interop with third-party Java libraries
- XSLT transformations to generate PDF export files using Formatting Objects
- Queued multiple AJAX file uploads, with drag and drop from the local file-system and thumbnail previews
- Relational database model
Responsive User Interface for Mobile
The web application user interface is designed to be responsive across desktop, tablet and mobile form-factors.
It works well on small form-factor devices, and all functionality should be supported on those devices, including PDF report generation, and image capture and upload using gallery images or directly from the camera on mobile devices.