COSC 465/565 Web Project

Brad Vander Zanden


Directory: /home/bvanderz/cs465/web_project. This directory contains the various example files cited in this project description.

Introduction

For the remainder of the semester most of your homework assignments will revolve about creating a web-site and backend for the ABET data collection that we perform in this department. You will be responsible for creating the look-and-feel for your web-site, the PhP backend that manages the mySQL database, and the Javascript frontend that manages the forms you will need to use for the data collection. Please make sure that your project works with either the Chrome or Firefox browsers, which are platform-independent browsers. IE and Safari are platform dependent and both the TAs and I may not have access to either IE or Safari.


Description of ABET data collection

ABET is the accrediting organization for both our Computer Science program and our two Engineering programs, CpE and EE. In order to be accredited, each program must publish a set of student outcomes that we hope students have mastered by the time they graduate. A list of these student outcomes can be found here (look at the Student Outcomes, not the Program Education Outcomes).

These student outcomes must be assessed in various courses. For example, COSC 302 might assess outcomes 1, 2, and 6 for CS majors and the senior design course, COSC 402, might assess all 6 outcomes For each outcome assessed by a course, the faculty member assigns each student one of three performance levels-exceeds expectations, meets expectations, or does not meet expectations. The faculty member enters the total number of students achieving each of these three performance levels into a spreadsheet. The spreadsheet named COSC_402_Assessment_Data.xlsx provides an example of such a spreadsheet.

In order to determine which performance level a student has achieved for an outcome, the faculty member must use various types of assessments, which may include labs, homework assignments, test questions, quiz questions, written papers, oral presentations, and any other type of assessment that the faculty member wishes to use. For example, to assess a student's ability to design, implement, and evaluate a computing-based solution to meet a given set of computing requirements a COSC 302 instructor might use some programming assignments and test questions whereas a COSC 402 instructor might choose a team's design document.

For each assessment the faculty member must:

  1. Assign a weight from 1 to 100 which reflects the percentage weight that that assessment carries in assessing the outcome. The weights for each outcome's assessments must sum to 100.
  2. Provide a short description of the assessment, such as "Homework 1 on SQL and Homework 3 on SQL DDL" or "Midterm 1 questions 2, 6, and 8 on SQL queries".
The document entitled COSC_402_Assessment_Plan.docx gives an example of an assessment plan. Do not worry about rubrics. For simplicity I am assuming that the instructor does not have to provide a rubric for their assessment plan.

Finally a faculty member must provide a narrative for each outcome that describes in general terms the students' strengths and weaknesses on that outcome. The faculty member is also asked to provide some suggested actions that might be taken to improve the students' performance on each outcome assessed in the course. The document entitled COSC_402_Narrative_Summary.docx gives an example of a sample narrative summary that might be prepared by a faculty member.


Project Overview

You will be creating a web-based GUI that allows faculty members to login and enter their ABET data. This web interface will be demo'ed in class. If you did not see the web interface, then please go to the video lecture for that day.

The interface should allow the faculty member to select their course(s). The interface should display the student outcomes that are assessed in the course and allow the faculty member to enter for each outcome:

  1. The number of students exceeding, meeting, or not meeting expectations
  2. The assessments used to assess the outcome and and weights for each assessment. An instructor should be allowed to add new assessments and delete existing assessments. The weights for the assessments must sum to 100 when the plan is saved. They do not have to add to 100 while the plan is being edited.
  3. The narrative listing students' strengths and weakness, and suggested actions for improving student attainment of the outcome.

The data will be stored in a MySql database.

The design of the project should be separated into a GUI-frontend that runs in the user's browser and a PhP/MySql backend that runs on a server. You can put both your client-side and server-side files in your webhome directory and then run your web-site from the department's web server.


Interaction with the Website

The following bullet points describes the web pages and interactions that an instructor can have with the website.

  1. The website's front page will authenticate the user via a username (instructorId) and password.
  2. Once authenticated, the instructor will be taken to a web page where they can select a course for which they want to enter student outcomes. The interface should have a side-bar on the left with the course selection menu and other options and a main window on the right where the results, assessment plan, and narrative summary are entered. The instructor should only be allowed to choose courses to which the instructor is assigned in the Sections relation.
  3. When the instructor selects a course the existing side-bar should be augmented with the outcomes listed for that course. When the instructor clicks on one of the outcomes, a form should appear with the following information:

    Unlike the web-site demonstrated in class, it is fine to have the forms for the results section, assessment plan, and narrative summary all appear on the same web page. Please separate the three forms with a visually pleasing separator, such as a horizontal rule.

    If the instructor had previously entered information for this outcome, then that information should be pre-loaded from the database.

    Once the instructor saves their work, they should be allowed to input data for another outcome for the course by clicking on that outcome. The instructor should also be allowed to switch to another course and enter data for that course.


MySql Database Design

I have already designed the relations for the backend mysql database for you and provided some sample data in ~bvanderz/cs465/web_project/sampleData.sql. This file is incomplete. You need to add DDL statements to create the tables for the relations and also to provide more complete sample data. You should provide declarations for the relation's attributes, for the primary and foreign keys, for enumerated types, and for the foreign key constraints. You do not need to provide declarations for any other type of constraint. If you have questions about the data types for the various attributes in the relations, please first check the sample file and if you are still not sure, then ask me. The relations that you will be using are as follows:


Relations That Can and Cannot Be Changed By Your Website

Some of the relations in this project can be changed by your website and some should be pre-loaded with data that would be presumably provided by an administrator. Please come up with the sample data yourself or use the documents that I have provided (in the relations below I will list the document that contains the data for that relation).

Administrator Supplied Relations (Unchangeable)

Relations That Can Be Modified By Your Website