.gitignore
*.swp is not project-specific

Vim users should add .*.swp to ~/.config/git/ignore, not to each .gitignore.
instance/ will be used to store instance configuration
Merge branch 'setup-gitignore'

* setup-gitignore:
  instance/ will be used to store instance configuration
  *.swp is not project-specific
  .gitignore
Add kateconfig

This way Kwrite/Kate/KDevelop will automatically follow the coding style.
kate: remove trailing spaces
kate: backspace unindents

It is not convenient to press backspace 4 times to end an indented block.
Merge branch 'kate-modelines'

* kate-modelines:
  kate: backspace unindents
  kate: remove trailing spaces
  Add kateconfig
Add a 'Hello, world!' flask app
Add models required by Flask-Security

- User
- Role
Minimal Flask-SQLA bridge

I don't want to use Flask-SQLAlchemy extension because it requires custom
declarative_base().
Add a minimal bridge to Flask-Security
Merge branch 'basic-app'

Create a basic Flask-Security app. Currently it has only one page
'/users/<id>' plus /login etc. provided by Flask-Security.

* basic-app:
  Add a minimal bridge to Flask-Security
  Minimal Flask-SQLA bridge
  Add models required by Flask-Security
  Add a 'Hello, world!' flask app
Introduce IdMixin

This will make possible using multi-column ids. This can be useful for "join" tables with extra information.

Also, add __all__ to some source files.
Add User.realname column

Later we may want to split the realname into parts, and replace 'realname' column by a property.
Move /users/<id> to a blueprint

Also, add a simple /users/ index page.
Merge branch 'users-blueprint'

Create a basic /users/ blueprint. Currently it can only list users.
TODO: create&edit users.

* users-blueprint:
  Move /users/<id> to a blueprint
  Add User.realname column
  Introduce IdMixin