I always beat myself up after and get really depressed when I get back to my dorm but I just can't do it.
Stop that. One of the very first steps to raising self-esteem is to practice self-love and being kind to yourself. Every time you catch yourself in this negative thought pattern, literally start thinking the opposite. So it might look like this:
Your thoughts:
"wow, I failed to talk to a girl again. I'm such a fucking pussy. Whatever, I don't deserve women in my life anyway"
[You catch yourself in this thought loop}
"Actually nah, its cool that I didn't talk to her. Sure, its a missed opportunity, but I'll get her next time! Besides, that doesn't change the fact that I'm an otherwise awesome guy"
At the start, you'll have to do this a LOT. As you do it more and more, positive thought patterns will start to become automatic and habitual. You'll also notice in increase in self-worth and overall happiness. And no, you don't have to believe yourself (although, if you do this consistently, you eventually will!). As long as you take the action of thinking these thoughts, they're still having a positive effect
This positive change in thought patterns and in self-esteem will in turn, affect your actions.
P.S.
This is not me just making shit up. This is what they teach in Cognitive Behavioral Therapy, which is the most effective way of dealing with these types of issues.
I don't know how to get a girl's attention aside from dressing well and i have no clue how to keep her interest after.
Don't worry about keeping her interest yet. Right now, all you have to do is come up and say hi! Once you do that, you've done your job. You can pat yourself on the back.