fe: add main layout and styles
fe: add favicon
fe: add 500 page view
be: keep routing in a separate modules (use lazy view loading approach); use __init__ to init flask application; use run to run it