I have started project planning a clone of ycombinator and I am running into a problem. This is my first large web app. The other web apps I have built we're toy projects to learn API's and frameworks.<p>I am going with a MVC design pattern. For this project I've set down for the first time and written out all of the features of the website. Then I began to document each models structure. I've written out all of the properties for the models. Next I will start designing the views.<p>The question I have is what kind of model structure would you use? I have 3 models the user, the submissions and the comments.<p>Each model seems so huge though.<p>I've studied iOS design and I feel that it would be easier and it makes more since to design and build things the way iOS apps work. For example, in an iOS app, if a user clicks on a submission in iOS, the submission detail view would be populated from the model data of the clicked submission.<p>However from my understanding of websites, building each site from the model data each time a link is clicked would be a huge waste of server resources. Also when web crawlers build links each site needs to be server side rendered. So the server must store 100s and 1000s of sites.<p>Can you please recommend any further reading on the subject of web app structure and project planning?
Less on the app structure, but more specific to hackernews: the source code is open <a href="https://news.ycombinator.com/item?id=14371189" rel="nofollow">https://news.ycombinator.com/item?id=14371189</a>, more pointers in <a href="https://news.ycombinator.com/item?id=14371821" rel="nofollow">https://news.ycombinator.com/item?id=14371821</a><p>The source code of <a href="https://lobste.rs/" rel="nofollow">https://lobste.rs/</a> is also open source and from a feature point-of-view pretty similar.
<a href="https://github.com/lobsters/lobsters" rel="nofollow">https://github.com/lobsters/lobsters</a><p>> building each site from the model data each time a link is clicked would be a huge waste of server resources<p>It's typically still done. Forums are 90+% read, little write and caching the rendering output gives a huge boost.