Some adjectives can be used both before or after the noun. Buono is an example, but also bello, bravo, brutto, etc. It basically depends on the importance of the adjective with respect to the noun. I found this online, but it's in italian: http://www.adgblog.it/2012/02/02/grammatica-la-posizione-degli-aggettivi-qualificativi-esercizio/ (see 5,6 and 7), however I am sure that if you research online you will find the same rules explained in English.
yes, I put that as it sounds so much better and lost a heart! I knew they wanted "a good cake" but took the chance.
The following is from my notes from a similar discussion. I failed to document the author:
Is it wrong not to reduce buono to buon in this scenario?
If it's masculine, and BEFORE the word it's describing, the final -o is omitted, and if it's AFTER the word, the final vowel is there. Feminine, the final -a stays whether in front or after the word it describes. buon sapore, sapore buono; buona mela, mela buona
Would "è una bella torta" work? This is similar to "è un bello film" which I understand is correct.
Your question got me thinking and I did a little bit of google. Here is a nice blog about the different between buono/bello and bravo/bene. Check it out! http://blogs.transparent.com/italian/buono-o-bello/
Me when I eat cake: Awww whose a good cake? Whose a good cake? You are! Yes you are! Yes you are!
I think buona in front of the word means technically good, and after the word it means of good character (what wouldn't make a lot of sense if the "word" is a cake). Better think of una buona insegnante vs. un' insegnante buona.