Contents

Overview

The semester project for this class is a web application of your choosing. You may work in groups of up to two. The project must rely on some amount of both server and client computation. For example, PHP on the server side and JavaScript on the client side. During the semester there will be milestones you must meet. These milestones will ensure that you are advancing at a quick enough pace to complete the project by the end of the semester. The milestones are described in detail further down on this page.

(Back to top)

Requirements

(Back to top)

Example Projects

The following are some examples of projects that would be suitable for this class. Your project does not have to come from this list. Note that as a class we will be creating a wiki, so that is not on the list below and your web application may not be a wiki.

(Back to top)

Milestones

Milestone 1

Let me know who your partner is, or if you are working alone. List five potential projects. For each one, explain why you think it would be a good project and list two or more of the challenges you think you'll encounter. Submit this information on Canvas (enter it into the text box); if working in pairs, only one of you needs to submit.

Milestone 2

First, let me know which project you've decided to go with. If you did not include the information requested in M1 for that project (why it would be a good project and two or more challenges you think you'll encounter), then include that, as well. Second, let me know what server side and client side technologies you've decided to use. Submit this on Canvas (enter it into the text box).

Milestone 3

This is where you need your development environment set up. I want everyone to have a "Hello world" for their project. What's this mean? Let's take the in-class project for example. We are using Laravel, HTML5, JavaScript, and CSS. A "Hello world" for this would be to have a server up and running (either Apache or the PHP dev server), for Laravel to serve a page, for that page to include some amount of JavaScript (perhaps a script that just displays some text once the page has loaded), and to have some style via CSS. So all of the technologies are utilized, even though the final product is nothing substantial. This is an important step in development, as it demonstrates that all of the necessary components are present. I will be checking this in class on the day it is due, so make sure you bring your laptop with everything setup.

Milestone 4

I want a "skeleton" for the controller actions. Think about which actions your app needs to implement in order to carry out the interactions it's intended to handle. For each interaction, list:

See the "Controller: How the data and view are connected" section of the text file we went over in class to see what goes into this. This part is important and is worth more than the others (10 points instead of 5). Submit as text or as a text, word, or pdf file on Canvas by 3:29 on March 6. The rubric is posted there, as well.

Milestone 5

For this milestone, you'll have to configure and program a skeleton of your MVC. That means creating a placeholder view for each of your app's views, make functions to put/get data to the database (these can be stubs that don't actually interact with a database at all, but eventually will), and make function stubs for your controllers. Create a file in the main directory of your repository called milestone5.txt; in it, list what you've added so I know what to look for. You should commit all of your code to your git repository, and push it to GitHub by the deadline (Thursday, Mar. 13). Your app should work by the end of this, but it won't do anything interesting.

Note that I will take into account completeness, correctness, and style. Make sure that you code is commented and well organized.

Milestone 6

For this milestone, you should have made substantial progress over Milestone 5 both in terms of code implemented and UI features. I'm looking for roughly 30% implementation. What's that mean? If you consider all of the stubs in your code base, including web views, then you should have 30% of them completely implemented.

To make it easier for me to see what you've done, you must include a file in the base directory of your web application called milestone6.txt. In it, I want a description of the following:

Here is an example of the format I want for this file:

app/views/home.blade.php
    Displays homepage.
    2/3 features implemented:
    Implemented features:
        - links to login/logout
        - search bar
    Empty features:
        - main content
...

You should commit all of your code to your git repository, and push it to your team's GitHub repository by the deadline (by 2pm on Tuesday, April 1). Note that I will take into account completeness, correctness, and style. Make sure that you code is commented and well organized.

Milestone 7

Just like Milestone 6, but 70% of your implementation should be complete. You should include a milestone7.txt text file, in the same format as milestone6.txt, in the base directory of your web application. Your code should be checked into GitHub by 11:59pm on Tuesday, April 15.

Milestone 8

Just like Milestone 7, but 100% of your implementation should be complete. The styling and visual features do not need to be implemented yet. I'm looking for the functionality to be completed. You should include a milestone8.txt text file, in the same format as milestone7.txt, in the base directory of your web application. Your code should be checked into GitHub by 11:59pm on Thursday, April 24.

Milestone 9

By Milestone 9, you should have style added to your project and it should be in working order. You will have to demo it for me on May 6 during class. Check the rubric on Canvas.

Milestone 10

Milestone 10 is the final project. This is worth 30% of your overall grade and should adhere to the requirements listed at the top of this page. Keep in mind that documentation and coding style is an important part of the grade. Also, include a text file in which you describe the following elements:

Your final project code should be committed and uploaded to your GitHub repository by 11:59pm on Monday, May 12. Check out the rubric on Canvas.

Final Presentation

The final presentations will take place during the class final exam period on May 15 from 3:15–5:15 and is worth 15% of the class grade. Other faculty and students from selected classes have been invited to attend, so your audience will be more than just those of us in the class. Faculty feedback will be considered in your grade. As such, your presentations need to be accessible to people who are not familiar with web development and programming in general. I will announce orderings closer to the presentations. See Canvas for a full rubric, but here are the major criteria your presentation should satisfy:

(Back to top)

Grading

The project grade will be spread across three categories:

(Back to top)