Model & interfaces

* models
* repository
* form
* gitignore