Toggle navigation
Home
Blog
Carnivorous Plants
Publications
Projects
Project Supervision
Courses
Sonoma State University
Department of Computer Science
CS-370: Software Design and Development
Programming Assignment 4: Display Auctions
OBJECTIVE
Write a program that displays all unexpired auctions ordered by time ending soonest. Do not display expired (closed) auctions.
SPECIFICATIONS
User Interface:
If a user is currently logged-in to the auction website, display all listings with a button or link labeled "Bid" except for items owned by the user themself. Users cannot bid on their own items.
If a user is not currently logged-in to the auction website, display all listings without a "bid" button or "bid" link.
Implementation:
You may write your Common Gateway Interface (CGI) application in PHP, Python, Perl, Java, C, or C++ (please include a Makefile if writing in C or C++).
All form processing must be done on the server-side via CGI.
Third party authentication software such as Google, Meta, etc. may not be used.
Your application must use the MySQL Relational Database Management System (RDBMS).
Your program must generate HTML 5 compliant output. Before generating dynamically-generated web content, create static web pages that you can submit to the World Wide Web Consortium Markup Validation Service at
https://validator.w3.org/
SUBMITTING YOUR WORK
Please upload your source code (including Makefile if applicable) as a zip or gzipped-tar file.
Programming Assignment 4 Rubric
CRITERIA
RATINGS
POINTS
Compilation:
Web-base application uses the Common Gateway Interface and runs on the Blue web server in the CS department at Sonoma State University.
Excellent
2 points
Application runs on the Blue web server at Sonoma State University via the Common Gateway Interface. No HTTP warnings or errors occur. The application is written in PHP, Python, Perl, Java, C, or C++.
Satisfactory
1.4 points
The application runs on the Blue web server at Sonoma State University via the Common Gateway Interface but some HTTP warnings occur. No HTTP errors occur. The application is written in PHP, Python, Perl, Java, C, or C++
Needs Improvement
1 point
The program relies solely on client-side Javascript applications for form processing.
Unsatisfactory
0 points
The Common Gateway Interface is not implemented; OR an HTTP error occurred.
2 points
Authentication:
Does the server-side application require user-authentication?
Excellent
4 points
Web-based application requires user-authentication. If a user is logged-in, the web-based application will time-out after five minutes of inactivity. In such cases, the server will prompt the user to authenticate again before continuing. To authenticate, the user must enter their email address and a password or register as a new user with an email address and a password. No third party authentication tools are utilized (e.g. Google, Meta, etc.). No HTTP errors or warnings occur.
Satisfactory
2.8 points
Web-based application requires user-authentication. The web-based application does not time-out after five minutes of inactivity. No third party authentication tools are utilized (e.g. Google, Meta, etc.). No HTTP errors or warnings occur.
Needs Improvement
1.5 points
Web-based application requires third-party authentication tools (e.g. Google, Meta, etc.).
Unsatisfactory
0 points
No user-authentication software was implemented.
4 points
MySQL implementation:
MySQL is accessed through a database interface on the server side.
Proficient
3 points
MySQL database is accessed via a server side application running on Blue. The server side is able to send read and write requests to update data managed by MySQL. All data is sanitized before reads or writes to the MySQL to ensure no SQL injections can occur.
Needs Improvement
1.5 points
MySQL database is accessed via a server side application running on Blue. The server side is able to send read and write requests to update data managed by MySQL. No SQL statements are sanitized before sending to the MySQL server. Therefore, an SQL injection can occur!
Unsatisfactory
0 points
MySQL is not accessed on the server-side.
3 points
HTML version 5 compliant output:
Does all dynamically-generated HTML output conform to HTML 5 standard?
Excellent
1 point
All dynamically-generated output is HTML version 5.0 compliant as verified by the HTML5 validator.
Satisfactory
0.7 points
One error occurs in the dynamically-generated HTML output when tested with the HTML5 validator.
Needs Improvement
0.2 points
Two or three errors occur when the dynamic web content is validated with the HTML5 validator.
Unsatisfactory
0 points
Four or more errors occur in the dynamic web-based output when validated in the HTML validator; OR no web content is output.
1 point
User Interface:
The server-side's application interface.
Excellent
4 points
The application displays all current auctions ordered by ending-soonest. The user does not need to authenticate to view existing listings. However, if the user is authenticated and has been active within the last five minutes, each auction listing displays an extra button (or link) allowing the user to either submit a bid on an item OR increase their bid on an item. The application will not allow users to bid on their own items they are selling.
Satisfactory
2.8 points
The application displays all current auctions ordered by ending-soonest. The user does not need to authenticate to view existing listings. However, if the user is authenticated but inactive for five minutes or more, each auction listing displays an extra button (or link) allowing the user to either submit a bid on an item OR increase their bid on an item. The application will not allow users to bid on their own items they are selling.
Needs Improvement
1.6 points
The application displays all auctions but the auctions may have expired; OR the application lists the auctions in a different order than ending-soonest.
Unsatisfactory
0 points
The user can NOT list items for sale by auction.
4 points
Total points: 14