<human>: Can you give me the gist of the text in a nutshell?

So I'm Erin and I'm 17, and the friend in question is Jess (16) and her boyfriend Keith (17). 

Whats been happening is I have class with Keith. I jokingly kicked him (not all that hard at all, and Im a very small, petite girl,so Im not strong at all). Keith responded by punching me in the leg pretty hard, hard enough to leave a bruise that lasted over a week. My bf did not like that ONE BIT so he and Keith talked and Keith agreed not to do it again. Howevor, I dislike that my boyfriend is the only thing stopping him from putting his hands on me.

The other day he screamed at me (I was jokingly nagging him for using a piece of equipment too long) and pushed me,right in front of the teacher. I feel like he has no control of his actions if he does it with the teacher two feet away. I have never intentionally hurt him (I accidentally kicked him in the balls once, I apologized) and we have a relationship where we both poke fun at each other. My main issue is when his temper gets out of control, he yells and swears at me or pushes me a little. 

I tried to talk to Jess about it but she was very dismissive about it, she said "well you kicked him first.." (very lightly might I add, not deserving of a full out leg punch). I also find that Keith makes sexual jokes that make me a bit uncomfortable, and is generally a huge jerk. For example our whole table shares materials, and he hogs them for a long time. When I ask him (for the 5th or 6th time) to share he screams at me. We're in high schooler and he acts like a 2 year old who wont share his toys. My question is what should I do? I really like Jess but I hate Keith.
<bot>: My friends bf has put his hands on me, has little self control and regularly swears at me and behaves like a 2 year old and it strains my relationship with Jess