Coding a matchmaking website
August 6, 2011 8:05 PM   Subscribe

If I wanted to code a simple matchmaking website along the lines of OKcupid, how would I start? I'm a complete beginner at coding.

I'd like to learn how to make webpages, and a matchmaking website sounds like an interesting project. I wouldn't want to develop any sophisticated matching algorithms, just create a site where people can make accounts, post information and pictures, and message other people. Maybe later I could figure out advanced features like how to charge for joining, display matches in one's area, or automatically suggest matches.

More specifically, what languages would I have to learn? (Bonus points if it incorporates C++ or Java, though I have no clue what languages would be used to create a website.) Are there any applications, books, tutorials, or websites for this kind of thing? If I did create something, how would I set it up? Thanks for your help.
posted by glass origami quicksilver robot to Computers & Internet (8 answers total) 15 users marked this as a favorite
You could do this project in any programming language you wanted, but some are going to have a much easier learning curve than others. In your case, I'd suggest either Ruby or Python. Both have well-established web frameworks: Ruby's probably best know at this point for Ruby on Rails, and Python has Django/Pylons/TurboGears/ (as well as others I'm probably not thinking of at the moment). Those will do a lot of the heavy lifting for you. (Take a look at the first chapter of the Django book for an example of how much they provide. Actually, that book will go a long way towards answering your questions.)

Why are you focused on C++ and Java, out of curiosity? Neither is terribly newbie-friendly, and they're not really the best choices if you want to do this sort of thing for a living.
posted by asterix at 8:24 PM on August 6, 2011

Well, one cool framework I've recently learned how to use is django, which is a framework for generating webpages based on the programming language python. You'll need to be familiar with how HTML, the web's basic markup language, works (tutorial here), and javascript (a language designed to make HTML interactive) will be useful for interactive content (tutorial here). Also, you'll want to understand stylesheets (CSS markup, tutorial here), a useful, nay, necessary, way of styling your webpages. You will need to use a database, so if you want you can learn MySQL (tutorial here), but if you use django you won't need to, since they've written python modules to take care of that for you.

Personally, I would suggest that you adjust your goal to learning a programming language like python first. If you leapfrog to making interactive websites before becoming comfortable as a programmer, I think you're bound for frustration, but I could be wrong.

There are many python tutorials out there, but I would recommend as an excellent centralized source for web programming (HTML, javascript, css, etc) tutorials and info. You'll find there are a staggering number of ways to design and make web pages.

Hope that's what you're looking for.
posted by Salvor Hardin at 8:24 PM on August 6, 2011 [5 favorites]

(I was also wondering why we get bonus points for something involving C++ or Java)
posted by Salvor Hardin at 8:25 PM on August 6, 2011

asterix and Salvor Hardin: I know a bit of C++ and Java already. It's not a big deal; I'm open to learning other languages if it makes the job easier.
posted by glass origami quicksilver robot at 8:28 PM on August 6, 2011 [1 favorite]

If you're coming to the dynamic languages from the world of compilation, I have one tip for you (completely unrelated to web development): the interactive interpreter is your friend. It's incredibly useful for trying out bits of code on the fly, without having to go through the edit/compile/run loop.
posted by asterix at 8:34 PM on August 6, 2011 [1 favorite]

If you have Java experience, I'd look at the Grails framework - it uses the Groovy language, which is a java-compatible scripting language. You can cut and paste java code, or use idiomatic Groovy code; it also runs on the JVM, so you get the advantage of all the "enterprisey" stuff.

The Grails framework borrows liberally from the Rails world in terms of architecture and implementation. Additionally, there are plugins that handle the standard account / setup stuff, greatly simplifying the work.
posted by jenkinsEar at 8:35 PM on August 6, 2011

The people behind the dating site consummating open sourced their code. It would be a good example of how to do a fairly straightforward site. It looks like they did it in Perl and Javascript.
posted by bottlebrushtree at 9:06 PM on August 6, 2011 [1 favorite]

Yeah, Java isn't a bad transition language to Ruby (and from what I've heard, Python, but I don't have much first-hand experience with it...although django is supposed to be awesome, as other posters are suggesting). Rails is a great framework, once you're familiar with the system you can put together a system with authentication and authorization almost without coding at all, leaving you to focus on putting together fancy user account pages and the like.

I don't know Grails but jenkinsEar's comment sounds like the best suggestion yet, since that would allow you to leverage some of your Java knowledge while becoming familiar with the way modern web MVC frameworks are structured, so if you wanted to transition to Rails at some point it wouldn't be as hard.

Good luck and have fun!
posted by dubitable at 9:53 PM on August 6, 2011

« Older Attractions between Cleveland and Milwaukee?   |   How can I monitor Firefox resource use (CPU... Newer »
This thread is closed to new comments.