Nice game! You weakened your attack a couple of times in the middle game after the Q sac by exchanging rather than keeping the pressure up and winning further material:
19... Nf4+ forces the exchange of the R for your N (20.Rxf4 Bxf4)
22 ... Nc5 (threatens ... Ne4+ followed by Q and R fork) 23.Rfe1 Ne4+ 24.Kc2 Bd7
29... Ndf4 is very strong I think, opening the diagonal for your bishop (30.h6 e4 31.hxg7 e3+ 32.Kc2 Kxg7; your king can be protected and you have strong attacks along the diagonal and eventually the b file with your R)
Good game though!
This is one good game by me. My opponent sacrificed a bishop for good attack. He might have been shocked by my terrible move taking his knight sacrificing my queen. I managed to get the material back. I managed to keep his queen closed from action and reached my pawn to promotion. I still believe that it maybe an inaccuracy or even a blunder, and that my opponent was overexcited with the queen sac. I want your comments about the game. Thanks in advance