rewrite backend

* add '/qrcode' page
* change UI in backend
* validate upload picture dimensions