Week 2 of Grandham was filled with more architecture decisions and implementations.
Solving the versioning problem
It's quite essential to store different user contributions on the same subject separately if the application supports crowdsourcing. We cannot let the user to overwrite the existing data without any moderation. Hence in Grandham, we have a 'Book' model with many 'Submissions' out of which one will be an approved submission. A book's individual page basically has the detail from this approved submission.
It will be task force (a set of users with advanced privileges) who would approve submissions. They will have options to comment or even edit a submission.