Contents

Overview

The final project must be a web application that you design and build. You have a lot of flexibility in what you do, as long as it's interesting, is of a substantial size, and meets the constraints laid out below. You will be designing and implementing your project according to a series of graded milestones, also laid out below. You may also use a framework (e.g. Ruby on Rails), but you must get it approved by me first.

Here are a few example projects (you do not need to pick one of these):

A blogging app. An application for blogs. Users can log in and blog or post comments to other users' blogs.

A social networking app. Allows people to sign up and share messages. Users can follow, star, and reply to updates from other users.

A search engine. Allows users to log in and register interests and conduct searches. Search results are first pulled from a free web search API and then filtered/grouped based on user interests.

An email client. Lets users send, receive, and manage emails.

(Back to top)

Project constraints

Your final project must meet the following criteria:

While you may rely on code from class or external sources, you will only be graded on what you have written. In addition, any code that is not your own must be properly cited, which means a comment for each chunk of code taken in entirety or in part from a source that include the author's name and the URL where it can be found. If you take code from somewhere and modify it, even heavily, you must still cite it. Not citing constitutes plagiarism and will be penalized accordingly, include a 0 on the final project.

(Back to top)

How to submit

Create a git repository under your name on the Endicott GitLab named <your last name>-final-project (for example, mine would be called feild-final-project). Make me a collaborator on that project. Clone the empty repository and add the files specified in the milestones below. Be sure to commit and push frequently for milestones 2 and 3. The version graded will be the last one submitted before the deadline. Milestones 1 and 2 may be submitted up to one day late, but you must email me which version you would like graded.

(Back to top)

Milestones

Milestone 1 (FP.1): List of project ideas

Provide a list of at least three potential ideas for your final project. Write one paragraph (a few sentences) per idea describing what it would consist of. These are rough ideas, so do not get too bogged down in details.

Keep the following questions in mind as you consider project ideas:

Submit your three ideas by cloning your GitLab final project repository and adding a file called project-ideas.txt. Be sure to commit the file and push your changes to the server. See this Canvas page for submission details; The rubric can be found here.

(Back to top)

Milestone 2 (FP.2): Component diagram and prototype

Based on feedback from me and others, settle on one of your ideas from FP.1.

As we learned earlier in the semester, diagramming is a very useful tool in designing complex applications. Your application should have several components between the client and server sides. Create a diagram of your application's components and how they relate. For each component, list the functions and features it will have. Your diagram should be in PDF format and created with an electronic diagram editor (PowerPoint or equivalent, Visio, Google Draw, etc.). This should appear in a file named diagram.pdf in your repository.

In addition, provide an early version of your application. It doesn't need to have all the features implemented, but the main idea should be there. This should be roughly 50% of the way to your completed project. Addd your code to a directory named code in your repository. Include a README file that includes a description of your project and the various files it contains, as well as the url where a live version can be found (use your account on digdug.cs.endicott.edu).

See this Canvas page for the rubric.

(Back to top)

Milestone 3 (FP.3): Completed project

For this milestone, your application should be completely implemented and ready to be used. You will submit three things, as described below.

Code

The first thing is the project code itself. Your updated code should appear in the same git repository directory as your prototype (code). Update your README to reflect any new files and descriptions. Be sure that a live version of your project is working and that the link to the live version is up to date in the README. You are expected to make changes based on my comments on your FP.2. See the rubric here.

Report

The second thing you need is a report. This should be a text file called report.txt in the top level directory of your repository. In addition, update your component diagram (diagram.pdf). In your report, you should answer the following questions.

Do not simply answer each question. Your report should flow smoothly and include with easy to read transitions. Your audience is students in this class. See the rubric here.

Presentation

Finally, you will give a presentation during the final exam period. Do not include your presentation in your repository. Rather, upload a PowerPoint or PDF via Canvas here (also where you can see the rubric).

The final presentation serves as a way for you to showcase your project to me, your classmates, and other faculty and staff members. You should approach it as follows. Pretend you are pitching your application to a potential customer. Your presentation should be snazzy and easy to digest. You should use some sort of presentation software and a demo should be include. Be sure to satisfy the following criteria (in addition to the rubric!):

(Back to top)