IT350 Project

In this course there is a single project, of your choosing. This is a group project where teams of 3 or 4 will work on a project and it will be due at the presentation. Your teams are expected to properly propose, plan, and execute the project while adequatly breaking up the work between the team members.

Accessing Project Files (new)

The team shares are available on midn.cs.usna.edu (you need to ssh there)
Unix path: /var/www/html/IT350-teamX (X is your team number)
URL: http://midn.cs.usna.edu/IT350-teamX

Honor

No collaboration between teams is allowed. All work for the project must be done by the team members. All sources outside of the textbook, assigned readings, course notes, and instructor need to be cited in the code, wherever that source is used.

Overall Requirements

The project needs to be of sufficient scope, which is why your proposal will need to be approved. A number of the requirements might involve features and techniques that will be presented and discussed later in the course (ex. JavaScript, Bootstrap).

You have to propose a project. Your project must have:

  1. Some sort of welcome page (an area that does not require being logged on). This page should make clear what the site's purpose is and provide appropriate links to the main sections of your site.
  2. A contact or about-us page informing the world of who the developers are
  3. Some sort of search functionality
  4. User profile page (some public information about the users who sign-up on your site
  5. A page with the list of all users, with links to their public profile pages
  6. Some way to identify the user (a login page) and then a way for user to logout (a logout page)
  7. A sign-up page to allow for new members to your site
  8. Some pages that are accessible only to the users logged in: these pages should provide the main functionality for your site. At a minimum,
    1. it should allow users to submit some information (e.g. post status updates, or take a quiz, or ...)
    2. it should allow users to grow their "network" on your site - this can mean that they add "friends" in a social media site, or add a class in a quiz taking site, or some other way to have multiple "things" for one user
    3. each user should have some personalized page, containing information gathered from their "network" - e.g. all the posts from their friend on a social media site, all the quiz answers/grades from the quiz taking site, etc. Implementing this should involve reading one or more files and selecting some information from them, sorting that information, and displaying it.
  9. Some admin-only area - that allows you to see who the users are, change the passwords, or lock them out
  10. Also for admin-only area, have some page that displays some statistics about the site, such as number of users, number of submissions, or whatever makes sense for your site
  11. You must add at least one innovative feature to your system that was not specifically required.
  12. Server side scripting via PHP
  13. Client side scripting via JavaScript

Additional requirements:

Project Proposal Due: October 10th, 2020 NLT 2359

Milestone zero is submitting a project proposal. The proposal must include:

Only the team lead needs to submit the proposal, in a file called teamX_projectProposal.pdf (replace X with your team number) using the submit system (projectProposal).

Project Report Due: December 3rd, 2020 NLT 2359 (night before final exam)

Along with the files for your project, you will submit a written project report, which includes:

  1. Your team number, team members, and URL to the main page of your team project.
  2. Usernames and passwords for one admin user and one other non-admin user on your site. We may use these accounts when we test and grade your site.
  3. A listing of the description of what each person did – who created each file, who tested?
  4. A detailed description of what your project does. This should serve as a user manual. Bullet lists are encouraged.
  5. Describe your innovative feature, any extra credit, and any requirements that you did not meet.
  6. All of your files should also be documented, also described in the requirements above.

Project Submission Due: December 3rd, 2020 NLT 2359 (night before final exam)

Only one submission per team is required.

  1. All files for the project should be stored on midn.cs.usna.edu under /var/www/html/IT350-teamX (where X is your team number). Do not modify the files after the due date
  2. Submit all files (including the project report) to the online submissions system (submit.moboard.com) on or before the due date, this is finalproject. Use the command line submit script and capture the entire contents of the directory. The easiest way to do this would be to cut and paste the following while logged onto the web server:

    
          ssh midn.cs.usna.edu
          cd /var/www/html
          ~/bin/submit -c=IT350 -p=finalproject IT350-teamX
    (where X is your team number)
    This assumes that the submit script is located in ~/bin/ and is executable.

Project Presentation Due: December 4th, 2020 at 1300 (final exam slot)

Each team will demonstrate their system to the class. Be sure to mention your required innovative feature and any extra credit. You're not expected to prepare PowerPoint slides but if you wish place them in your team web directory for easy access. Each member in the team should present some part of the project. Each team's presentation must be 10-15 minutes. The goal is to showcase your project, but also explain the technical details of how it works.

Project Grading

A portion of your individual grade will be a group grade based on the following:

  1. Meeting projecting milestone and status reports
  2. Functionality and correctness – The site should operate as advertised without error.
  3. Visual Appearance & Consistency – including good use of CSS.
  4. Maintenance – Ensure the site is well organized, requires minimal maintenance, and can be expanded by someone else who doesn't know your code.
  5. Documentation – Ensure all pages are documented . Each file should start with a description of that file, creation date, and author name. If multiple team members modify the file, each should document the date and author of sub-sequent modifications. Each PHP function should be preceded by a short description. General documentation covering the system's layout and design is also required.
  6. Creativity – The requirements above require at least one system innovation not specified in the project writeup. This and any other innovations will count towards your creativity grade.

The other portion of your individual grade will be administered by your teammates. Your assessment of your peers shall be based on effort, knowledge, team work, and professionalism.