tags:

views:

407

answers:

8

Hi,

Soon my team (5 students total) is going to start our big project for our Intro to Web Development class and I'm wondering if you guys have good ideas for a project?

We can use : XHTML, CSS, JavaScript, and PHP.

I'm not too sure if we are allowed to use a framework like JQuery. Would that limit options?

I'm thinking about a very simple blog. Is that even possible or will we need a framework to do this?

Thank you.

EDIT: Clarified the question a bit. This is an Intro class. External JavaScript libraries are allowed. No Backend (database).

So I guess that kinda takes out the blog idea.

+1  A: 

I'm gonna throw an "out there" answer. I'm assuming you guys all have some programming experience, and you are at a University? If so, dig through your library's online journal subscriptions. Find a paper in economics by one of the graduate students there about a really great new concept that will change the world. Take the theoretical idea and implement as a web service that the public can use. After your course is done, throw some Google Ads on it and sit back while the money rolls in.

Seriously though, pick a project that may come in useful longer than just the course. Save any code you create and start building yourself up a nice personal library of useful code.

darren
A: 

Yes blog is a good idea students would get a good exposure, your list is missing the database you would use. I think you would be using MySQL for backend.

Ravia
A: 

It is a bit vague asking for opinions in SO.

What you can do is deside a general direction among your team, then ask another question(s) in SO to validate your direction and perhaps get some random ideas on what you can do with your project.

It also depends on level of difficulties you want to try out for.

Just an idea of some of the interesting things you can do and possibly extend afterward:

  • Build a static website that focus on client-side user experience
  • build a dynamic website that utilise popular APIs like flickr, twitter, facebook.. etc
  • Develop an API or plugin that reads data from a data source (eg/ an API that list questions of SO)
  • Develop a CMS
  • Develop a MVC framework
rockacola
+3  A: 

Do something that will provide value, either to your community or to your school. Seriously, you can touch every technology you need or want doing anything at all, but if you create something that will benefit others, you'll be doing a lot more than writing a sterile app submission. It's also much easier to get behind something that has tangible results. Sure, all of the following have been done before, but there's always room for a local contender, and apps like this can get popular quickly. As to the database, just use an XML flat file. It's certainly not desirable or cutting edge, but you can do anything with it and that's how they did it back in the stone age!

Try something like the following:

  • Study group meetup - allow students to create and search for study groups
  • Community Service request - allow members of the community to ask for things from students (anything from needing help mowing a lawn to tutoring a high school student)
  • Class-specific blogs - similar to the first one, but instead of focused on bringing people together, it would be focused on taking the people already in a class and giving them a platform to communicate and potentially discuss (maybe more of a forum) the class itself.

You could easily go crazy with any of the above, but just knock out the essentials, and knock them out in pieces. My biggest advice is that you develop this iteratively and focus on the core functionality BEFORE adding any fluff at all. That's the lesson you need to learn the soonest. Google "Scrum" and follow the simplest form of it you can grok.

As you reach certain milestones of functionality, post some fliers advertising your super-cool site to get some traffic and momentum before your deadline. Another great idea is to blog (on an already established blog engine) the entire process and solicit feedback on the features from your community. You probably won't be able to do most of what is asked, but just doing that will be a fantastic experience and will positively impact the few features you do decide to focus on. Advertise early and let the community help shape the result.

The process you take is at least as important as the result. If you work Scrum into this and develop this openly, involving the community from the beginning, you'll be on a really good path for your careers.

Tim Hardy
A: 

Easy =)

  1. Basic stat and debugging. Learn how to get user agent, IP address, port etc.
  2. Pull data from files and display. It doesnt have to be a db (complex). But could be a simple counter
  3. Some effect with GET/POST. A form that display the GET data in your page and maybe something to write to a txt file on POST.

I propose a simple login system. Doing that will teach you much about web development. Have a hello pages which displays stats about the users browser (#1), allow the user to register which writes to a file (POST, append the file. Look up fopen and appending instead of overwrite). Allow the user to login with the same user/pass (read the test file. #2) and if you want have a search user which gets and displays users which start with the letter. This would cover all 3 points and teach you what you do much of the time while web developing. Extra points if you upload a file, have some kind of autocomplete with jquery (or any jquery).

acidzombie24
A: 

I do agree with what has been said here. Basically, build something that will be useful even after you submit it or present it to class. That will at least give you "reason" to maintain and improve what you've done.

One thing you could do is go to your local volunteer site and maybe look at stuff that people might need or you can go contact them and ask for more details.

Coding District
i completely disagree. If it is for an intro class everything should be as throwaway as possible. I think they should do as many simple things as possible that is practical and common in web development. Anything they decide to keep they will want to rewrite anyways for maintenance reasons or simply because it isn't reusable or because they 'don't like it'
acidzombie24
A: 

Here is a simple project that can be expanded to see how far your class gets:

Build a picture viewing website. At the start the files are stored in a directory. Then add in an xml file for each picture with a caption. Then add into the xml files options to crop, transform etc. Then add in a web based editor of the xml file (eg on the page that shows the image there is a button that lets you edit the meta (read xml file) information for that image.) Next is the image upload feature. Etc keep going to the end of the semester or you replace flickr.com

Hogan
A: 

Well, for what it's worth, I tried to learn web development by building an auction app. Basically, the idea (and you can easily change it) is that there are two tables, ITEM and CUSTOMER. ITEM has rows (ITEMID, CUSTID, AMOUNT, DESCRIPTION), and CUSTOMER has rows (CUSTID, DESCRIPTION). For the UI you have 1) an ITEM page that lets you select an ITEM and enter the CUSTID of the bidder who "won" the item, and the AMOUNT they bid, and 2) a CUSTOMER page that lets you select a given CUSTOMER and display all the items they have "won" and the total that they owe. Then that page can be printed, so they can pay for their things and collect them.

I did it using one of those "For Dummies" books. I had to install PHP, MySQL, and Apache, and after a few days got it working pretty well.

Of course, it didn't take me long to realize that all I really needed was MySQL and C++, but that's because I didn't really need a web site after all. Even so, it gave me my first taste of web app design.

Mike Dunlavey