Hi, I want to build a real estate web application for listing properties (for sale, for lease, etc).<p>Can you help me decide on what technologies I should use to build such an application? Let me point out that I am good with Java/J2EE + JQuery for front end but somehow I feel that is not the best solution for such an application.<p>Should I store "real estate property" details in usual database (like MySql) or document oriented one (like MongoDB or CouchDB)?<p>What should i use for middle tier..<p>NodeJS
PHP
JAVA/J2EE
Python
ColdFusion
Ruby on Rails<p>or something else ?<p>I am planning to use JQuery for the front end.<p>Thanks.
We use HTML / CSS / and JavaScript exclusively for our front ends. We no longer use any intermediary or server bound languages such as PHP or JSP. We have found this to be faster to develop and more portable across back ends. If you decide to go the Java route for your back end I would use JAX-RS and EJB 3. With EJB 3 you can use a tradition DB and not have to worry about all the mapping that generally has to take place with the tradition relational model. Netbeans has pretty good tooling around JAX-RS and EJB 3 in which you can generate your REST service and entity classes from you database structure or generate your database structure and REST services from you entity model. Either way, you can have a working REST service layer up in a matter of hours with Netbeans tooling, it is quite nice.<p>As for the front end, if you are going to be building a large scale web application I would suggest adding Backbone and a few other libraries to your JavaScript library or going with Dojo. Either way you are going to need something to keep your app organized if it is going to be anything more than a few hundred lines of code.
If those are the tools you are familiar with, then go for it.<p>Stick with a SQL database and ORM for now, you can always convert to NoSQL later if you need to.<p>Most would suggest using one of the leading two modern framework combos for greater productivity (Django or Rails).<p>If you already know a few languages then you should pick up Ruby or Python pretty quickly.<p>Personally, I use Django - but in a previous life I did a lot with Spring + Hibernate; and whilst Java isn't trendy for startups, it is a potent combo.
I responded before reading the full post, stick with what you know and do restful json, couchdb is also worth looking into for prototyping. As long as your interfaces are clean you should be good. Also consider security.
if you choose Java, don't slow yourself down with full J2EE stack. Stick with Tomcat + Stripes (or any MVC layer) + Hibernate or iBatis + Spring or Guice