Final project
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 makes sense, 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 couple example projects:
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.
(Back to top)Project constraints
Your final project must meet the following criteria:
- incorporates an interesting GUI
- uses a databases or some kind of server-side storage
- uses AJAX
- implements a RESTful API
- includes graceful error handling
- has a reasonable design
- is well documented (header, inline comments)
- is interesting and creative
- uses only external libraries approved by the instructor
Milestone 1 (FP1): 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.
See this Canvas page for submission details; The rubric can be found here.
(Back to top)Milestone 2 (FP2): Project sketch
Pick one of the applications you outlined for FP1 (or a new one!) and write a few sentence response to each of these questions:
- What will your application do?
- What's will the GUI look like? (use a program to draw the design, or draw it by hand and take a picture)
- What will the RESTful API be used for?
- What data will be stored and how (e.g., using a database)?
- Thinking about the design of your application, list three potential components you may implement and describe what they do.
See this Canvas page for submission details; The rubric can be found here.
(Back to top)Milestone 3 (FP3): Component Diagram
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.
Note that your components should at least cover the functionality you described for your application in FP2.
See this Canvas page for submission details; The rubric can be found here.
(Back to top)Milestone 4 (FP4): Code Skeleton
Before you start digging into the nitty-gritty of implementing the code, make the skeleton. The skeleton should meet the following criteria:
- every component should have a stub or place holder
- every function/feature should have a stub—that is, a definition
with only a return statement (if the method returns something); the
returned value should be a dummy place holder (either
null
for objects or a constant for primitive types) - every component, function, and feature should have a comment above it that clearly explains what it is and how it relates to the other functions/features/components
- it should run (that is, it should not contain any syntax or other run-time errors)
See this Canvas page for submission details; The rubric can be found here.
(Back to top)Milestone 5 (FP5): 30% complete
This one is pretty simple: 30% of your application should be implemented for this milestone. If your code has 100 features, you should have 30% of them implemented.
See this Canvas page for submission details; The rubric can be found here.
(Back to top)Milestone 6 (FP6): 60% complete
60% of your application should be implemented for this milestone.
See this Canvas page for submission details; The rubric can be found here.
(Back to top)Milestone 7 (FP7): 90% complete
90% of your application should be implemented for this milestone.
See this Canvas page for submission details; The rubric can be found here.
(Back to top)Milestone 8 (FP8): 100% complete
Your application should be completely implemented and ready to be used.
See this Canvas page for submission details; The rubric can be found here.
(Back to top)Milestone 9 (FP9): Report
For this milestone, submit a well-written, five page report answering the following questions:
- What is your application?
- Why did you choose to build this application?
- What roadblocks did you hit along the way?
- How did you deal with them?
- What would you do differently if you had to build your application from scratch again?
- What do you feel you've learned from this project?
- What did you wish you had learned, but didn't?
Do not simply answer each question. Your report should flow smoothly and include with easy to read transitions. Your audience is the class.
See this Canvas page for submission details; rubric TBA.
(Back to top)Milestone 10 (FP10): Final Presentation
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!):
- introduce yourself
- describe what your application is and why it is useful
- demo your app
- pick one component you are particularly proud of and clearly present the code for it (this is how we—the customer—will judge how strong of a web programmer you are, so make it good!)
See this Canvas page for submission details; rubric TBA.
(Back to top)