… as promised in my Quora answer here. Also, here’s a PDF version of the post: Classification of finitely generated modules over Dedekind domains, with and without projective modules, and reconciliation of approaches.
In this post (specifically in Section 4) we give a proof of the classification of finitely generated (f.g.) modules over a Dedekind domain avoiding the notion of projective modules. (Instead we rely on pure submodules, which give a slightly more transparent/natural/direct approach to the classification problem at hand, at the expense of the greater generality afforded by the projective module approach. Along the way we also explain why these approaches are really not so different after all.)
We gradually build up from the more familiar special cases when is a principal ideal domain (PID) or even just a field. Along the way we discuss some relevant abstractions, such as the splitting lemma (Section 2).
I would like to thank Profs. Yifeng Liu and Bjorn Poonen for teaching me in 18.705 and 18.785, respectively, this past (Fall 2014) semester at MIT. Thanks also to Alison Miller for catching a typo in Exercise 3.