I hate to pick your post apart but:
She is actually very cool, not *****y and moody like some girls.
Yes she is. She will be moody cos' she'll get her period, and she'll be *****y about other women, as well as when you leave her at home on friday night while you go out drinking with your mates.

I just want you to realise, she may be a cool girl, but don't put her on a pedastal. Plenty of other girls out there who are just as cool. Also, you're seeing the "image" she projects around everyone, you don't know her that well.
I need to show her that I am interested in her but not offend her at the same time. Plant the seed, so to speak. Just so she knows without any doubt, but not piss her off.
Offend her? "Piss her off"? How's that? Besides, only AFCs are worried about that. If you had a GF, and some girl was OBVIOUSLY interested in you, would you get pissed off? What about if she was a much better catch than your GF? Didn't think so...
And what's with all this "let her know I like her" crap? Is that so she can ask YOU out cos you're afraid of being rejected, you sissy? (No offence, I'm just busting your balls.

)But you have to realise that YOU are the MAN. She must always WONDER if you like her, but never KNOW. TRUST ME, I know from experience.
Any ideas would be helpful, thanks.
Girls with BFs are tricky, I've have tried THREE times and failed all three times (If failure means not getting a STR or LTR). The fartherst I ever got was 2nd base with two of these girls. But the third seems to be coming round. I have learned from my mistakes and have some sound advice for you:
1) Ask her on a date.
That's the first and foremost thing you do. Why? Well if she's happy with her BF and going to remain faithful, or she just wants to be nice, she'll say "Sorry, Leogetz, I have a BF." and you can move on. Does she KNOW that you KNOW she has a bf? If not, then PERFECT. Ask her on a date, try not to make it look too serious. Coffee works.
2) Go all out on your first date.
The first date is really your only chance to make a great impression, so make it count. Make her laugh, use C & F. Create the "perfect guy" (DJ not AFC) image. She'll constantly compare her BF to you. You must look better. He sees her OFTEN, but that gives you the advantage cos' it makes her think about you more and makes her BF seem less perfect.
3) Never admit your interested. Act uninterested.
Always keep them guessing. If their friends ask "Do you like Y?". Don't answer them. Dodge the question with some humour. Give her some attention, but not too much.
4) Don't disrespect her BF or talk about him, too much.
If she brings him up in convo, don't make a big deal about it. It's amazing how well this works if she likes you. If you act like you aren't phased by him and you don't care that she's unavailable it'll only make her want you more. If she thinks your jealous or trying to "steal" her away from him, she'll be turned off.
5) Try LJBF her when her interest level is high
This requires some DJ instinct. It worked for me. When I sensed she really liked me I told her I just wanted to be friends. She KNOWS this is you REJECTING her and will make her go crazy. It can back-fire though so be careful.
6) Don't waste too much time
I think you're in highschool, most relationships don't last long there. As soon as your sense she in to you, wait for the right moment, and kiss her. If she freaks out then just walk away. Don't look back. Don't sit around getting this huge crush on her until one day you ask her out and she rejects you. TAKE ACTION! BE A F*^%$ MAN!
7) The DJ rules still apply
Mystery, challange, neg-hetting, ****y and funny. Don't forget those simple rules. They're the foundation on which the rules above are based. The above things only work if she can be attracted to you, girls are attracted to DJs not nice guys. IF you're not going to be a man, then stuff above won't help you.
Good luck!
Santos