Description

You are to develop a web application for managing lists of student marks for this course. Using MVC platform, this web app. must be coded and implemented entirely using JSP Actions, Expression Language of JSP files, POJOs (Plain Old Java Objects) and HTML files (along with CSS and possibly JavaScript). No plain Servlets!

Accordingly, the expectation is that you will implement the JSPs pages using scriptlet, expression, declaration, and directive tags. You should also limit the use of the out implicit object try to use expression tags embedded in HTML in most places rather than print or println statements.

The Data Layer

You should use grades.sql to build your database. It contains one table called prog32758. Each row has a student number, first name, last name, and list of marks (4 In-Class Exercises out of 20 each has a actual weight of 2.5%, 3 Assignments out of 50 each has an actual weight of 10%, a Midterm exam out of 100 and a final exam out of 100 each has an actual weight of 30%). Any of the marks fields can be null.

All database operations should be done using a DataAccess class created by a listener and posted to ServletContext.

The Business Logic Layer

You should create a Student object capable of holding an entire database row. This object can be retrieved and then posted to the session for use by all the JSP files. It can also be used as the return value and/or input parameter to DataAccess methods like insertRow, modifyRow and getRow. This object should also contain a method to compute the students final grade.

The Web Layer

The front door (index.html) should prompt for a student number and redirect to the intro.jsp file. The intro.jsp file should look up the Student in the database.

If the student does not exist, the user should get two links: Create a new student and back.

The Create a New Student link should go to a create.jsp file that allows the user to fill in a form to create the student record, using the student number they entered on the front door. The form should redirect to another jsp that performs the database insertion, issues a report stating exactly what was inserted and offers a link back to the front door.

The back link should just go back to index.html.

If the student DOES exist, the user should get two different links: Print a Report and Modify Grades

The Modify Grades link should go to modify.jsp. This JSP should offer a form to change each of the grades in the database. Include the existing grades as default values in this form (if the grade is null, leave the default value blank). The form should redirect to another JSP that performs the update, issues a report on exactly what was updated and offers the user a link back to index.html.

The Print a Report link should go to report.jsp. This JSP should offer a summary of all the students grades and then a final grade out of 100 along with a letter grade (http://gradecalc.info/ca/on/sheridan/gpa_calc.pl) Use the weighting given in the class plan to calculate the grade. If some of the students grades are null, you should offer an estimate of their final grade. For example, if they have only done two in class activities, two assignments, and the midterm, you can average their two exercises and two assignments to get those marks. Then you can calculate a mark out of 70 that does not include the midterm, then scale it up to be out of 100 to get an estimate of their mark so far. At the bottom of the report should be a link back to the front page.

The Flow of the App

see image.

Look and Feel

Make all pages have a consistent style using images and CSS. It doesnt have to be beautiful, but it should look better than the default styles. You can link all JSP and HTML files to a common style sheet to achieve this. Every page should also have a common header and footer. The headers and footers should be contained in separate JSP files and then included using a JSP directive tag.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.