“Donc” leads to a conclusion depending on what we said previously, so it is the translation of ‘then’ or ‘so’ with the meaning of ‘therefore’
“Alors” introduces a new event following a first one in the time, so it is the translation of ‘then’ or ‘so’ with the meaning of ‘after that’, ‘at that time’ or ‘as a consequence’
J’ai raté mon avion, donc je suis resté plus longtemps: I missed my plane, so I stayed more time
Je n’ai rien vu donc je ne peux rien dire: I saw nothing therefore I can’t say anything
Il faudra donc penser à une autre solution: We will have therefore to think to another solution
However “donc” has more meanings:
Surprise: so it was you: c’était donc toi!
Strengthening: Viens donc: Come on (to insist)
Ecoute-moi donc: listen to me
Many expressions: tiens donc: well, well, well
Dis donc: by the way
Non mais dis donc (reproachful tone)
J’ai raté mon avion, alors je suis resté plus longtemps: I missed my place, then I stayed more time (here you just explain what happened next)
Alors il faudra penser à une autre solution: Then we will have to think to another solution (afterwards)
Je n’ai rien vu alors je ne peux rien dire: I saw nothing so I can’t say anything (as a consequence)
“Alors” also gets more meanings:
Alors tu viens? are you coming, yes or no?
Et alors? so what?
Zut alors! Holy cow!