Demos: you must send me a link to your website by 5pm on Tuesday, December 13, 2016.
(Subject line of "cs4250, project part 7", exactly. You should send the link / URL early; I will not visit your website until the deadline.) Remember to include the name of your project/group in the email message.
The goal of this part of the project is to interface your database with a programming language and to make it web-accessible. This is the stage where you embed your database into a complete application. The programming language that I recommend is PHP, a popular, server-side scripting language. Executable commands are embedded via special tags in the source of the web page. (See the class lecture notes for more details.) PHP has been installed on the P 288 machines. Using PHP, the MySQL database that you have created can be accessed via the web, using a webserver installed on hopper.csustan.edu. Before detailing the assignment itself, it may be helpful to read the following FAQs:
Answer: No. Due to security constraints, you can access the MySQL database server on hopper.csustan.edu only from machines in P 288, either by logging in directly or by using the web interface you will create in this part of the project.
Note that if you write your PHP scripts to connect to "localhost" (as shown on the MySQL handout that contains your MySQL password) and test them by connecting to an installation of MySQL on your own machine, then porting the scripts to a P288 machine for project submission should be fairly straightforward.
FAQ: Can we use our own database server and web server?
Answer: Yes. You are welcome to do the project completely on your own computer. Notice that this part of the project involves having a DBMS (MySQL, PostgreSQL, Oracle, SQL server etc.) and drivers for accessing the database from the programming language you will use to implement your web interface. Depending on how you choose to demo your web interface, your computer may also need to be internet-accessible (so that people -- your project partners, your professor -- can access the web pages that are stored in your computer via the world wide web). In addition, you may need to install PHP (if you decide to use PHP for your web interface), and a web server that you can operate on your computer. In short, if your setup allows one to create web pages and make them publicly accessible on the WWW, you are in good shape.
If you choose this option, you take full responsibility for ensuring that your machine supports all the desired functionalities. I will not be able to accommodate any last minute requests for extensions because something is not working. I provide this option for your convenience, so that you can take advantage of any already existing setup for your project. Do not attempt this unless you are absolutely positively sure of what you are doing. We do not have the resources or the manpower to provide technical support and help in debugging. At the end of the day, I will grade it just like every other project.
Answer: Certainly! However, should you decide to use <insert buzzword here>, you are on your own. We do not have facilities to support these in the lab, nor to provide technical support.
The sysadmin verified that PHP and Ruby should work, and that is all. (Ruby on Rails may or may not.) If you choose to use Ruby, contact the professor ASAP, since some security-related adjustments will need to made to your user account. (That is the full extent of the technical support we will provide for using Ruby.)
FAQ: What is an SQL injection attack?
Answer: SQL injection attacks are a common way for malware to invade DBMSs via the code a web site uses to interact with its database.
What I want to see at the end of the day is a single web page that provides a nice interface to your database. Feel free to do more fancy and creative things, but do so only after completing this "core" requirement. Here is a style guide for what this page should look like. If you look at the template carefully, notice that we are only querying the database. We are not doing any inserts, updates or deletes. (That's one direction to look at, if you are aiming to be creative.)
Help with PHP
Here are some good documentation resources:
Should you find another good PHP/scripting/MySQL documentation/help WWW page, please let me know and I will add a link here for the whole class to benefit from.
One team member from your project should send the URL for your web page, where I can access your application. This can be done by sending email to Dr. Thomas. Notice that this URL could be located on hopper.csustan.edu or on some server that you run yourself. If you choose the latter option, then it is your responsibility to make sure that the server is up and running when I try to access your web page.
I will not grade until December 13th, so it is ok if the URL you send leads to a largely non-functional page at the time you send the URL. (The page should be functional by the 13th, however.)
In addition, you need to compile a project report about 6--8 pages in length, plus source code appendices. More on this below.
Here's the distribution of points:
Submit your source code (.zip file) to the CS Homework system along with the report (next item), or include the source code as appendices to your project report. (The actual source source code must be submitted, not a link to some other web site.)
Portable Document Format (PDF) format preferred for your report. MS Word or plain text also acceptable.
Include your answer to the next question in the document, too.
Submit your report to the CS Homework system.
Please note that there is no "right" answer to this question nor will you be penalized for saying that there is something missing from your project. What I want to see is if you can discuss your domain, your database, and the implications of the design and implementation decisions you made in your system for the application domain that you have chosen.