It's not a mess because it's your first real project, it's a mess because that's what happens when software meets the real world, and moving requirements. Software engineers like to use the term 'technical debt' which is a fancy way of saying a mess :)
That sounds nice but I have to assume that a self taught first timer that learned off YouTube videos is going to have 10x the technically debt of someone who's been doing this for several years and several iterations, and learned some lessons.