add state_machine for post
modify app to work with state_machine
Merge branch 'feature/state_machine' into develop