A challenge-ladder is conceptually just an ordered list of players participating in some game played head-to-head over time. The objective is to challenge players ahead of you on the list and try and beat them. If you beat someone ahead of you on the ladder, you move up on the list. A variety of rules will govern how challenges are issued and the effect on players of winning or losing - stay tuned.
Your system of software will need to meet the following requirements. Users will:
I have created two databases for you to experiment with. The first, called teach_yourself, is the database used in the book Teach Yourself SQL. You can use this database to test and experiment with the queries in that text. You can create and populate the database running on your local virtual machine with this database for homework assignments.
The second database I have created is called ladder. This database has the schema (e.g., tables/relations and fields/attributes) you will use for your project. You should not deviate from using this database schema for your project. The ladder database is populated with a few rows of data that you can query. The SQL data-definition statements that were used to create this database are available here along with some some data.
I also have an Entity-Relationship (ER) diagram and a Universal Modeling Language (UML) diagram of this database available.
We will also be using the programming language PHP, a programming language that is usually combined with HTML web pages to create interactive web sites. PHP provides server-side computation and is especially useful for providing the "middleware" programming logic that sits between web pages and server-side services such as database management systems. Here is an example HTML form that invokes a PHP script to process the data collected by the form.
The information about the ladder will be stored in a relational database.
The front-end graphical client will be a standard web-browser. As a part of your testing you should ensure that your software works reliably and correctly with various versions of currently used web-browsers.
The bulk of your project will consist of PHP programs that implement the required functionality by accessing the database, consuming input from HTML forms and dynamically creating and outputting HTML web pages.
I suggest you take the following approach to design and development. Consider the requirements that have been provided. Then, for each of the operations a user will need to perform, consider how you will implement that functionality. Begin by implementing minimal functionality (note that you do not need to build things in a particular order - e.g., you can manually enter players using interactive SQL before you implement a player-registration form and function). You will then need to tie all of the functionality together into a complete system.
A description of the milestones follows:
You should provide as much detail about the design and implementation of each page as you can.
The progress milestones listed above are worth 30% of the project grade. Each milestone is an equal fraction of that 30% (e.g., if there are 5 milestones then each is 6% of your project grade) and the grade you receive for each milestone is either a full fraction (e.g., 6%) for meeting the milestone or 0% for failing to deliver.
At the end of the course, your software system will be accessed online and graded. The grade you receive will comprise the other 70% of the project grade. The grade will be heavily weighted toward functionality - i.e., does it meet the design criteria given above and any additional criteria specified in class. Failure to meet the basic design criteria will result in very poor grade for this project.
Prior to finals week I will provide you with the specific "grading template" I will use to test, evaluate, and grade your project during finals week.
Last modified: , by David M. Hansen