If you have a difficult child, you do end up feeling like a shit parent, but that may not necessarily be true - you could be a fan-bloody-tastic parent with a very difficult child [optimistic].
I have a couple of suggestions. Firstly what Mypopcorn said about one-on-one time, but do make it fun not an opportunity to question or lecture her.
Secondly, try to keep a diary of what she does, how she is, what makes her angry etc. You may find that you can work with her triggers (worry, hunger, tiredness, friendship issues, school etc) and head off some of her anger to make life easier for her. Also make a list of the really difficult behaviour, and try to work on one thing at a time.
Thirdly, introduce a "no violence" rule for everyone - no violence, hitting, pushing, shouting abuse, insulting, everything. React instantly to any occurrence of this, with an instant sending to her room. And don't worry or comment if she trashes it, she will get used to it soon if you do it Every Single Time. By the way, my kids now have a punch bag which has been great - they thump the punch bag rather than each other
.
Finally, don't take it all so personally. Step back and look at her a little more dispassionately rather than feeling angry, guilty, upset, hurt etc.
I would second the idea of a parenting course. I went on one when mine were 10, 8 and 6 and it really helped. We used to be given different techniques to practice, or challenges, and then came back the next week and discussed them in a group, to see what worked and what didn't. I found it great (and it got me away from them one night a week).