Slashdot Mirror


E-Commerce Tools For Students, What's Required?

profBill asks: "I'll be directing the "senior development project" this year for the Computer Science students in our department. The senior design project is supposed to give students a chance to bring together all their skills on a group project for some "practical" application. My overall goal this year is to have each group develop an e-commerce solution for local businesses near the university. I'd like them all to use open source software for various reasons (they're interested in it, it is easier to get hold of the software, just to show it can be done, to give them broader experience, etc.). The businesses are very interested and I think it will be a great experience all around. So the basic tools are things like PHP, MySQL, Perl and Apache but what else would be helpful? Note I don't want turnkey solutions, I want the students to develop the entire solution, from loading the OS to the final working system. What about Web page development? What about interfaces for end users? What have you used? What other issues? Opinions of the Slashdot community would be greatly appreciated." Now this sounds like an extremely cool project. I wish more colleges would look to do practical things like this with their students.

3 of 13 comments (clear)

  1. What we have done at my University by SpaFF · · Score: 3

    We've designed several database apps similar to what you are talking about for the lab on campus that I work at.
    Basically we installed a barebones RedHat setup on a machine, locked it down, then compiled and configured Perl, Apache, PHP, and PostgreSQL.
    They should be able to do the actual code writing from anywhere via ssh or ftping it over.
    Be sure though that you teach them not only how to do the application part, but how to compile and configure the tools. You should also be sure to teach them how to secure the development machine properly, something thats usually left out in a class like that.

    -Lee

    --
    -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GIT d? s: a-- C++++ UL++++ P++ L+++ E- W++ N o-- K- w--- O- M+ V PS+ P
  2. Check out Lutris' Enhydra! by Jules+Agee · · Score: 2

    Enhydra is an open-source Java application server. It provides a graphical database design tool, a site management console, load balancing, database connection pooling, and session management which automatically chooses between using cookies and url rewriting. Plus it's free. :)

    It also has a great tool called XMLC which IMHO is a far better solution for embedding dynamic content in HTML than ASP or JSP. It lets you create dynamic HTML pages which a graphic artist can then edit in Dreamweaver or whatever tools they want to use - they can change the look and feel of the site without bothering the programmers, and there are no non-standard tags for their tools to choke on.

    The students will still have to do needs-analysis, design the database structure (if necessary), design the interface, write the servlets, integrate with existing legacy systems, integrate with any credit-card processing software they might need, etc... Enhydra just provides a fantastic set of tools to let their applications include advanced features which they might not otherwise have the time or inclination to implement. It also provides a supported platform that the businesses can grow on, add functions to, and scale up if their on-line requirements increase in the future... and you know they will. ;)

    http://www.enhydra.org


    --
    Auditing and dentistry are excellent career choices for people who don't like other people but aren't coordinated enough
  3. look at Philip and Alex's guide by woggo · · Score: 2
    Philip and Alex's guide to Web Publishing is a handy reference for these sorts of things. They even describe how to get e-commerce "working" in a general way, all the way down to credit card processing (i.e. getting a merchant bank account + more) in Chapter 14

    You'll want to use a "real" RDBMS. I'm not trying to flame here, but MySQL is inadequate for storing your customers' data because it doesn't support transactions. If one of your scripts accidentally breaks (due to bad user data), you do not want to bill them or store their order accidentally. Likewise, you want to update "stock/availablility information" atomically. There are probably some parts of your site that you could use MySQL for (i.e. authentication), but since you will need transactions for a critical part of your product anyway, you may as well go with Sybase, Oracle, PostgreSQL or SOLID. The MySQL developers have made it pretty clear that even if they implement something "called" transactions, it will fail the ACID test. (see the links from http://openacs.org for more objective info.) In any case, don't run the db server on the same machine as the WWW server -- remember the example set by CDUniverse.com, who lost many credit card numbers to a cracker.

    If you have any db/php beginners on your team, you might want to show them this article I wrote for the Linux Journal -- it features a (cursory) overview of some of the topics you'll need to teach them.

    Best of luck! ~wog