So I've known this girl for a while now and we're really good friends. She's shy so she won't like a promposal in front of the whole entire grade, or even friend group. So I'm thinking of something small but still very sweet.
I was thinking a bouquet of flowers (every guy does this so I know I have to), a teddy bear, and a box of her favorite chocolate. I'll tape the chocolate on the bear so that it looks like the bear is holding it. I'll buy her a card as well and write "to x. I can't 'bear' to go to prom without you. Love x". I would ask her to come meet me somewhere so it's away from her friend group or my friend group. Then I'll ask.
I think your idea is really considerate and overall excellent for her since she is shy. If you ask to meet her somewhere I'd suggest doing it by an attractive venue opposed to in the lunchroom or something.