amyhua / ptwdi-final-june-2016

Includes Project Guidelines for the NYCDA PTWDI June 2016 Cohort

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Final Project Goals and Requirements

Modification Notes on Grading Criteria

  • Deployment is optional: You can demo your project off of localhost or a deployment platform like Heroku. Deployment is not a required mark of completion, but is preferred so you can show it on your portfolios and/or the NYCDA Student Projects page later.

  • Style guide compliance doesn’t need to be 100%, but it should be up there (https://github.com/amyhua/node-style-guide/blob/master/.eslintrc), modifications on the .eslintrc file are OK (if for some reason ESLint install does not work for you, just read through the guidelines on the README and follow them as best as you can). If you have some errors here and there from when I put it through eslint, that’s fine. But if there are so many errors that there was clearly no attempt at following a style guide, then I’d ask for you to resubmit.

Goal:

To demonstrate knowledge of working on a fully featured NodeJS/ReactJS project individually.

Assignment:

The final project is your chance to apply what you've learned about web development in this class to a project you can show your peers, instructors, and potential employers.

The project can include basically any exploration of the front-end and back-end technologies you've learned in this class. That could be a web application, a prototype front-end for a web application. Your project idea must be approved by your instructor before you begin working on it to ensure its scope is accomplishable before class is over and also large enough to keep you busy during that time. (see "Checkpoints")

Getting Started:

Start by mocking things up with a pen and paper or a graphics program before you start coding - submit this as well with your final submission. Have your instructor take a look at your mockup and approve your submissions.

Use Git to keep track of progress:

Keep track of your progress using Git. Make at least 6-10 commits as your project progresses. You don't need to make a commit for every single minor change, but instead for each set of changes that adds to your website, or "feature". Also a commit before almost any code is written, your "initial commit".

Deadline:

A working version of your final project should be deployed by the last day of class for final presentation of the project to the class and your instructor.

Assessment Areas:

You will receive a grade on the final project based on the following assessment areas:

  • User Experience
  • Overall Design
  • Code Quality (passes the linter)
  • Originality

User Experience:

  • How hard is it to use your application and does it look nice?
  • Is the user challenged to do simple tasks or is it easy for them to navigate around and use your application?

Design:

  • Does your application have good typography, color scheme, and layout by modern design standards?
  • Is there a good mix of imagery and text on your website?

Code Quality:

  • Is your code indented correctly and following proper style guidelines?
    • What are the proper style guidelines to follow? See the NodeJS Style Guide and the ESLint file in the github repo.
    • Your code should pass the NodeJS Style Guide ESLint Rules. Add this .eslinrc file to your project and install ESLint properly in your text editor. Your final project should have no red flags or ESLint errors.
  • Are you using DRY (Don't Repeat Yourself) principles like wrapping repeated view code in helpers and repeated methodologies in functions and classes?
  • Is your code modular? Maintainable? Did you build it so that it would be easy to extend or change in the future?
  • Is your code easy to understand: Did you name your variables well? Did you add comments to aid understanding?
  • Are you sure you could explain all of the code in your project if asked, or is it too disorganized?
  • Is your code "clean" (contains no code smell or unused variables/methods)?

Originality:

  • Has the exact same product been built before?
  • Is this product useful to a tangible demographic?

Checkpoints:

There are several checkpoints throughout the final project process where you are expected to meet with your instructor to examine progress:

  1. Before beginning sketches, to run project idea by the instructor
  2. After sketching out idea, before coding begins
  3. Four weeks before presentations
  4. Two weeks before presentations
  5. Day before presentations

You are also welcome to ask questions of your instructor and the TA as always.

Working outside of class:

We will be working on your final projects and workshopping them in class but you are expected to put in a large amount of work outside of class.

Don't forget to ask the instructor about your idea before implementation.

Best of luck with your final projects and as always, questions are encouraged!

Grading Criteria:

  • Project should run without crashing under normal circumstances
  • Project demonstrate a clear purpose or goal its attempting to reach
  • Project should demonstrate quality code in all areas
  • Project should have a consistent and approachable UI throughout
  • Project should be somewhat unique

Complete = Meets all grading criteria above.

Incomplete = Does not meet all grading criteria. Needs improvement or missing submission.

Examples

See Examples

Timeline

Project work weeks will include project work + pop-up lectures based on common issues and questions on any frontend or backend technology from class.

Week Content Start Date
18 Review. Final Project Planning. React-Router. Intro to Flux. Oct 18
19 Flux, cont'd. Oct 25
20 Project work. React-Router Blogger Integration Nov 1
21 Project work. Nov 8
22 Project work. User Auth in React/Redux. Nov 15
23 Project work. Testing. Nov 22
23 Project work. Deployment/DNS/Automation Nov 29
24 Project work. Computer Science Fundamentals Dec 6
25 Project work. Computer Science Fundamentals Dec 13
26 Project work. Dec 20
... ... ...
XX Project Presentations! Jan 19 (last day)

About

Includes Project Guidelines for the NYCDA PTWDI June 2016 Cohort