4 ms·
My advice is to start simple. Simpler than you'd think at first. The point is not to see if they can come up with something that looks good, but to see if the
by leif 16y ago
My advice is to start simple. Simpler than you'd think at first. The point is not to see if they can come up with something that looks good, but to see if they can build a reasonably-sized project to absolute completion, and leave it in a maintainable state. I would want to see something a student could leave feeling proud having built, something for which they'd want to upload the code to their github account and point to when interviewing later.
Therefore, I'd start with a blog platform. Doesn't need to be "full-featured" in any sense of the term, just as long as there's a reasonable (explainable is close enough) way for me to write posts (doesn't have to be part of the frontend), and the frontend is usable (there should be some kind of indexed archives). Comments would be nice, not necessary (no login system for commenting required, saving an email or some kind of identifier for the commenter is enough).
What's important is that the final application is robust and at least mostly secure. It's almost impressive how few "web programmers" can't put together a complete webapp without gaping holes (security, functionality, or otherwise). Lots of points would be determined by maintainability of the code, that is: was it well thought-out from the start? has the code been sufficiently refactored instead of just copied/pasted everywhere? are templates being used properly?
If someone implemented it cleanly without javascript (that is, when I click a link, even though it just fetches a new static page, it "feels" ajaxy, in the sense that large bits of UI don't change underneath). With javascript would just be sugar on top.
Beyond this, for adventurous students or those with lots of extra time on their hands, I'd ask for a simple facebook-style application. Something where I can log in (remember your security, folks!), form relationships with peers, and post some kind of content (either broadcast or directed at one user) is enough. Here I would expect some javascript as needed to make the UI feel snappier, though if the student could do without and still impress me, I'd be happy. Of course, javascript is a big part of webapps, so this "bonus project" would be a good place to demonstrate that.
Going farther, real-time chat would be my next task, but I really wouldn't expect undergraduates to be able to bring that to fruition in a semester.
If you want to build up a portfolio, I'd go with real-time collaboration a la Etherpad. Make it clean, and make the UI pretty. If you came to me with something like that I could play with for half an hour without finding any obvious bugs, I'd be extremely impressed.