I've got an idea for a very simple interactive web site. To boil it down to functionality:

  • Names, each with an input box (think tags you can add)

  • Lists following the names of tags others have added

  • Voting capability on the tags

  • Sorting for the whole list of names (alphabetical, most tags, etc.)

  • Sorting for the list of tags within a name (votes, time entry, alphabetical)

So I have no problem doing the html/css for this, but I don't have a clear idea of what's next or where to go for it. This is where I need help. My thoughts on roughly what I need to do, though I'm needing help on if I'm missing whole points as well as clarifying these points and offering suggestions:

  • Language [easiest to learn, especially suited for the above tasks]

  • Database [works well with above language, at most hosting sites, easiest to set up from scratch]

I believe I can work out hosting issues (matching to the above needs) and advertising (adsense, of course), but I'm somewhat stuck figuring out how to choose the above and where to go to learn what I need to do implement other features.

Additionally, are there whole other areas I'm missing? I'm not looking for the work to be done here, just hoping to get some steps-up for starting out on my own with a hopefully manageably small project.

If I manage all of that, I'd be hoping to expand into new areas that might affect which way I should start:

  • account creation with your tag creations

  • email notification when your tags are voted up

  • rss feed updated with new tags

  • comments on each name


See the Reddit-clone tutorial/screencast at

Mikael Jansson

If you are using Java, I believe AppFuse can simplify the configuration and set up.

If you are not familiar with Java, though, I'd recommend a gentler approach. Possibly PHP, as it's very forgiving.

You might consider what it is you want to learn and focus on that. If you try to learn good design, a new programming language, database configuration, SQL and database design all in one go, you may get frustrated by trying to do too much.

+1  A: 

If you don't know SQL that well, then you will want to use a framework that abstracts this for you, e.g., Hibernate, Rails, ...). This also should make the choice of database less important, although most people use MySQL or PostgreSQL for personal projects.

If you don't know how to program then you'll want to use a framework that makes the programming task a lot simpler by providing a decent way to do things - for Java this could be Struts or Spring, etc. You'll still need to learn to program, but architecturally everything is sorted out for you.

PHP is also quite popular, but it does have many pitfalls and could be bad for a beginner in terms of encouraging bad methodologies. At least PHP5 fixed web services and generic database interfaces however.

+1  A: 

The key questions of language and database are surely dictated by your skills and experience. Do you have experience in any server-side web technologies? Do you have any desktop development experience that might influence this choice?

Do you have any development tools that you have experience of? If not, your choice of platform might be dictated by what you can get your hands on cheaply or for free.

If you don't have any experience then I'd check the many post on here and elsewhere that discuss the merits of various platforms and pick one that you think a) you could handle, and b) might be useful in future, and most importantly, c) one that you think will enable you to tackle this project now.

As for what to do next, I would suggest continue planning. Write down your requirements such that you could give them to another developer - if you can do this, you might be getting towards the stage where you might start getting your hands dirty.


If you are an absolute beginner at programming but allready know your HTML and CSS you should take a stab at PHP.

While I don't think PHP is a viable allternative for any serious development task, I do think that it's learning curve and wealth of tutorials and helpfule sites make it great for the beginner. Also cheap PHP/MySQL hosting is abundant.

One important rule though: "Plan to throw one away". You will start over from scratch at least once. SO don't take the first version to seriously, view it as a leraning experience. Most of the initial programming lessons is easily transferred to other platforms if you decide to go with something else.

Install XAMPP and some PHP-IDE and your're set. The online PHP-manual is full of advice on how to use the various features of the language so it's easy to get up to speed.

Don't try to do any serious layereing design and such. Lots of tutorials will talk about how to apply MVC and other design patters to layer your code. For PHP you should ignore those, theese patters makes sense in larger systems, but for your project you shouldn't be affraid of mixing presentation and application logic in one big mess. Just plan to throw it away once you have a good understanding of the problem and the sollution issues you've been confronted with.

In a similar vein there are lots of frameworks for PHP to aid in such layered design. Such as template systems, ORM layers and others. Don't try to use theese. PHP is a great templeate system in it self with the proper dicipline, and an ORM with its associated domain model is just overkill for a langugage where each page is esseantially an isolated program to service one request.

John Nilsson