1

I'm trying to create a website that accepts submissions into a form, and then later on I can display it in tables organized by categories, similar to how RateMyProfessors does it:

http://www.ratemyprofessors.com/SelectTeacher.jsp?sid=399

To me, my main concerns are:

  • Figuring out a good way to read in submissions and save it into a database in the backend,

  • Displaying the data in organized tables on the frontend.

Does anyone have any suggestions for any platform, framework, CMS, or anything that could assist me in creating such a site that's focused on very flexible forms?

2 Answers 2

4

I assume that you don't have particularly strong development experience (if this is an incorrect assumption, give me a rundown of your development background, and I may be able to provide more targeted advice). If you have some initial capital, you can probably source it out. Depending on the complexity of the initial build, it shouldn't be too hard to get a strong basic set of functionality on a ~$25-50k USD budget.

If, on the other hand, you are interested in actually getting your hands on some code, it's a somewhat long path to get to the level required to build a RateMyProfessors imitator. Two very popular and well-supported web application stacks are PHP and Ruby on Rails. Either one would be a good entrance. You can find book recommendations nearly everywhere, although N.B., Rails is still actively evolving, so you probably don't want to use a book more than a year old for Rails (in fact, in the current environment, a recent major upgrade to Rails from version 2 to version 3 makes it so that a lot of books are probably not a good idea). On the other hand, even a 3 year old PHP book will give you a decent introduction.

Finally, a decent middle ground is to try to put out your own site using a pre-built extensible CMS like Drupal. While your eventual capabilities will be limited (there's a good chance you'll hit a "wall" where you won't be able to achieve what you want and will either need to learn the technologies yourself or hire outside help, and in either of these cases, your application may well be rebuilt from the ground up), it's a good start.

3
  • I'm not looking to create a site that's as extensive and content rich as RMP, for now. I suppose what I'm asking is which platform/framework/CMS/etc. is specifically best for creating very flexible forms, and then for displaying the information received into tables. I'm currently learning PHP and MySQL to do this, but I don't want to reinvent the wheel, so I'm hoping I'm not overlooking an easier way to do this. Dec 21, 2010 at 7:41
  • If you're asking whether there's a framework that's specifically suited to a Rate Your X site, then I know of none at the top of my head, and I doubt one exists. So it's extremely unlikely that you'll accomplish exactly what you want without coding a substantial portion of it. If you're going to be using PHP, use a well-supported framework like CodeIgniter or CakePHP; they'll help you do a lot of stuff off the bat. Otherwise, just keep plugging at it. There really is no easier way short of paying someone to help you. Best of luck!
    – Steven
    Dec 21, 2010 at 14:14
  • Wow, I didn't even see your post and I just started hammering away at my keyboard with my cup of coffee. Once again, I end up essentially saying what you said. Good post. +1 :)
    – Dobry Den
    Dec 22, 2010 at 10:01
2

Your two concerns are pretty "low level", thus satisfied by just about any option you pick. Most frameworks have "HTML Helpers" that can generate forms for you.

For example, in CodeIgniter, this:

form_open('register/complete');
form_input('username');
form_input('password');
form_input('password_confirmation');
form_submit('register', 'Submit Registration!');
form_close

will generate this:

<form method="post" action="http:/example.com/registration/complete" />
<input type="text" name="username" id="username" />
<input type="text" name="password" id="password" />
<input type="text" name="password_confirmation" id="password_confirmation" />
<input type="submit" name="register" value="Submit Registration!" />
</form>

and it will handle the form parameters and all that for you (with a little direction on your part).

Your other requirement -- reading in forms to input into the database -- is a basic FORM --> DATABASE insert that you'll also pick up quickly on your quest to learn about making websites.

To give you more actionable advice, I started out learning HTML/CSS and PHP. Gained a bunch of familiarity by playing with my own Wordpress and vBulletin installations. Then I seriously developed a few websites with PHP. And now I work with Ruby (framework: Rails) and Python (framework: Django).

I highly recommend that you start with:

  • HTML/CSS (for displaying the website).
  • PHP to actually run the logic of your website, interact with the database (like inserting submissions, selecting submissions to render into HTML), and generally run your website.
  • MySQL as your database.
  • CodeIgniter as a PHP framework. It has great documentation (pull down the Table of Contents tab on top).

This is pretty much called a "LAMP stack" (Linux/Apache/MySQL/PHP, for our purposes) and just about every server out there runs this setup. PHP is also the most prevalent scripting language out there, so you can find the most resources. And most of all, this all is easy to deploy and get running.

I think your real aim should be to learn how to make websites. Start by learning the fundamental basics of HTML, but then immediately jump into "PHP & MySQL", which are often taught coupled together. Once you have some basic footing and did some tutorial project in whatever book you chose to learn PHP/MySQL, I recommend jumping straight into your RateMyX project that you've envisioned. I'd even forget about CodeIgniter or any other framework until you can confidently create a simple website that can create/read/update/delete (CRUD) records in a database. A general understanding of PHP/HTML/database is required until you throw in another layer of something you simultaneously need to learn (a framework).

But once you get to that point, you'll realize what a framework really is and why it's helpful.

The project you describe is easier than you think. You just need to pick up a PHP+MySQL book and have at it.

/Edit/: I see that you're already learning PHP/MySQL and want some tools to help you out. Then go ahead and jump into CodeIgniter, start checking out the various Helpers and Classes in the User Guide I linked. You'll also have to learn the MVC (Model/View/Controller) setup, but once you learn it, you'll never want to go back. Even when I first started, I found that the actual website logic was easy. The harder parts were getting login/registration/authorization set up. Fortunately, CodeIgniter already has soon good solutions. Check out TankAuth or IonAuth for it. Handling data (Get and Post data, for example) that persists between pages as also very annoying until you get a framework.

1
  • Thanks a lot! This is a really great roadmap for me! I appreciate your help in giving a guide as to which subjects a beginner should study- I needed to figure out how to get started, and your answer is very helpful to me. I was wondering, though, do you have much experience in website development? As I get more questions during this process, it would be helpful if I could contact you more in the future. Dec 25, 2010 at 23:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.