Skip to content
Project for the Software Engineering lecture in Autumn Semester 2016 @ University of Zurich (UZH). Live Demo:
Java CSS JavaScript HTML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


Project for the Software Engineering lecture in Autumn Semester 2016 @ University of Zurich (UZH).

The app was built on Google's Web Toolkit Framework (GWT). See here for more details about GWT.

Final project result

This is tempic. An awesome tool to experience Temperature changes through time.

Live Demo

Our app is live on Google's App Engine: [] (


See also the list of contributors who participated in this project.

Technical Stuff

MYSQL Connection

In order to connect to the Google Cloud SQL Server when running the app locally you need to be in the UZH IP Adress range. We restricted the access to the server to prevent other users from querying our database. So any IP in the range between and is able to query the database (given the correct credentials were used.)

Edit Database

In order to edit the database you'll need a MySQL Client (Sequel Pro Mac or MySQL Workbench Mac / Windows). The access credentials are stored in the dropbox under passwords.txt.

Database Structure

The database currently only has one table with the following columns: alt text

Project Structure


All Presenters belong to the package com.uzh.client.presenter and implement the presenter interface


Models are shared on the server and on the client. They belong to the package com.uzh.client.shared.


All Views belong to the package com.uzh.client.view.

Handling Events

Every UI element that the presenter should now about (in order to react to events) should be returned by a function declared inside the presenter's display interface:

public interface Display {
    HasClickHandlers getFilterButton();

In the presenter's bind method we can then attach an event handler to the UI elements returned by the view:

public void bind() {
    display.getFilterButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            Window.alert("Button clicked, yayy!");

In the view itself we need to define a function which returns the object to the presenter:

public HasClickHandlers getFilterButton() {
    return filterBtn;
You can’t perform that action at this time.