Hello HN,<p>I am in the middle of planning to write a book around a rails-like web framework/technology, and I was wondering what would be the best example, for you, for mastering this kind of tech.<p>- A twitter clone ?
- A tumblr clone ?
- An amazon clone ?
- etc.<p>This is kind of a poll, but I am new to HN and couldn't see how I could do that.<p>Thanks in advance
Typically to get my bearings on Web Frameworks, I build an Amazon clone. Why?<p>* I can use the frameworks "partial views", header, footer, sidebar.<p>* I can use the frameworks stylesheets/javascript/images helpers.<p>* I can see how file uploads work (let users upload avatars).<p>* I can see what forms helper the frameworks have "create product" form.<p>* I can see how the framework facilitates forms validation.<p>* Search - I can see what ficilities the framework gives me in filtering rows from the database.<p>Once I'm done with this simple app, it takes me around a day, I can confidently say I can work on actual products.
Why only one? I would suggest you to compile a book with 4-5 small but real world examples that focuses on different parts of framework. Ideally, I would like to see :<p>1) A blog/to-do/HN clone as introduction.<p>2) Any social application that involves signup/login/user management/profiles/roles/authorizations/connection/communication etc.<p>3) An e-commerce application - May be a shopping cart.<p>4) REST API with OAuth2 support(as oAuth provider not just consumer)
For a really simple example, you could try a Todo app.<p>For example, this site does the same thing for a number of JS frameworks: <a href="https://github.com/addyosmani/todomvc" rel="nofollow">https://github.com/addyosmani/todomvc</a><p>For something more complex, you could try to simulate a mail client (mail user agent). You probably don't need to make it fully functional, just simulate the email layer. If you do this, you are just obeying Zawinski's Law! (<a href="http://en.wikipedia.org/wiki/Jamie_Zawinski#Zawinski.27s_law_of_software_envelopment" rel="nofollow">http://en.wikipedia.org/wiki/Jamie_Zawinski#Zawinski.27s_law...</a>)<p>See what UkiJS does here for a browser example: <a href="http://ukijs.org/mail/index.html" rel="nofollow">http://ukijs.org/mail/index.html</a><p>In general, check out RosettaCode to see how to do the same thing in different languages.