Sprint 4: Client-Side with JavaScript and AJAX

Due: November 17, 2021 at 10am

Purpose: This sprint will help you practice the following skills, reinforce knowledge, and experience server-side web development.

Overview

In this sprint, you will work in your project groups to implement client-side web components written in PHP to perform some of the functionality of your project. Now we must connect the client- and server-side components seamlessly together, using JavaScript and client-side scripting to provide additional features and enhance usability. You will be incorporating dynamic page updates, client-side input validation, and asynchronous requests to the server.

You are encouraged to add enough service and behavior to your application to fulfill the vision that you set out in your project proposal. There is only one more sprint after this one: the project deliverable (with Angular).

You will also continue to ensure that your code is valid HTML5 (to ensure optimal compatibility) and that it meets Section 508 standards (to ensure accessibility of your site).

Sprint Requirements

Please consider the following as minimum requirements only. You are strongly encouraged to get creative and do more than this, but this is what will be required to receive full credit.

Minimum Requirements

These requirements must be implemented in JavaScript, relying on the HTML, CSS, and PHP from the prior sprints. If you need to add additional functionality to your HTML/CSS or PHP backend, you should do that while working towards these requirements.

Grading Rubric

Total: 160 points + 10 extra points

Note: All partners must be present at the demo. Otherwise, 10 points will be deducted and you are required to reschedule the demo.

Submission

Upload all of your .php, .html, .css, and any image files to the Sprint 3 assignment on Gradescope. Gradescope will accept a zip file, individual uploads, or a GitHub repository for your submission. You must include your partner in the group submission on Gradescope for both partners to get credit for the assignment.

Your program will be graded during an interactive session in which you demonstrate it to the course staff (instructor and/or TA). You will have to sign up for a demonstration slot in order to do this. A sign up page will be available for you to use as the deadline approaches. Sign up early so that you get a time slot you want.

If you do not do a demonstration, you will receive no credit for the sprint.

Part of your grade will be based on explaining code segments and/or design to the instructor or TA. Come to the demonstration prepared to talk about your code.

Even though you will be demonstrating the files after the deadline, all the code must EXACTLY match the code that was submitted, and cannot have been modified after submission deadline. Several randomly selected assignments will be tested by installing the submitted files back onto the server before running the program. If it is determined that your code was modified after submission deadline, you will not receive credit for it.

Note: Making your submission available to the course staff is your responsibility; if we cannot access your files and your site on the cs4640 server, then we have to assign a zero grade. Be sure to test access to your files before the due date.

Important Note: All code in this assignment must be your own! You are free to use the course handouts and examples as a starting point. You may refer to online resources with proper citation but you CANNOT take any code from the web or any other source. Assignments that are found to have done this will be given a zero and submitted to the Honors Committee. You may not use code you have submitted for another course.

Reminder: Special Helper Extra Points

1 point for each project helped, up to 10 (total) extra project points

For each sprint, if you get help from your classmates (excluding your project partner), when you submit your assignment, please make a note (helper.txt) that:

Note: Extra points will not be awarded if any of the above information is missing.