A data-modelling approach to web application synthesis