add the heart feature

add the heart feature and fix bugs in backend and front end