Skip to content

Instantly share code, notes, and snippets.

@f3r
Last active August 29, 2015 14:24
Show Gist options
  • Save f3r/dcfae665d53a749e710e to your computer and use it in GitHub Desktop.
Save f3r/dcfae665d53a749e710e to your computer and use it in GitHub Desktop.
WDI Project1 Guidelines

WDI Project #1

The Game


Let's start out with something fun - Your own game!!


Project Overview

  • Individual project
  • Be creative, make it fun and interesting
  • Work through tough programming challenges

Show us what you've got!


Functional Requirements

  • Render a game in the browser with JavaScript
  • Switch turns between two players
  • Design logic for winning & visually display which player won

Technology Stack (minimum)


Technology Stack (recommended)


Design Principles

  • YAGNI (You aren't gonna need it)
  • KISS (Keep It Simple Stupid)
  • DRY (Don't Repeat Yourself)
  • SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion)

Technical requirements


Deliverables

Game URL


Deliverables

Github Repo

  • Your repo must be hosted in the WDI-HK-8 organization
  • Don't forget to add a link to your hosted working game in the URL section of your repo
  • Git Commits
    • Explanatory Commit messages
    • We expect frequent commits dating back to the very beginning of the project
  • Use branches and pull requests
    • Only include in PR related files to the functionality you want to add
    • Clear and comprehensive PR comments

Deliverables

Github Repo / readme.md

  • Leverage Github-flavored Markdown
  • Project must have a readme.md containing:
    1. Introduction to the game
    2. Game rules
    3. Technologies used
    4. Design approach
    5. Installation instructions (git clone, bower, )
    6. Unsolved problems / Upcoming features
    7. Author contact information

Getting Started

  • Break the project down into different components (data, presentation, views, style, DOM manipulation) and brainstorm each component individually. Use whiteboards!
  • Use Chrome's Development Tools (console.log, inspector, alert statements, etc) to debug and solve problems
  • Work through the lessons in class & ask questions when you need to! Think about adding relevant code to your game each night, instead of, you know... procrastinating.

Getting Started (II)

  • Commit early, commit often. Don’t be afraid to break something because you can always go back in time to a previous version.
  • Consult documentation resources (MDN, jQuery, etc.) at home to better understand what you’ll be getting into.
  • Don’t be afraid to write code that you know you will have to remove later. Create temporary elements (buttons, links, etc) that trigger events if real data is not available. For example, if you’re trying to figure out how to change some text when the game is over but you haven’t solved the win/lose game logic, you can create a button to simulate that until then.

Potential Project Ideas

Blackjack

Make a one player game where people down on their luck can lose all their money by guessing which card the computer will deal next!


Potential Project Ideas (II)

Concentration

Sometimes just called "Memory", it's a card game in which all of the cards are laid face down on a surface and two cards are flipped face up over each turn. If you get all the matching cards, you've won!


Potential Project Ideas (III)

Self-scoring Trivia

Test your wits & knowledge with whatever-the-heck you know about (so you can actually win). Guess answers, have the computer tell you how right you are!


Useful Resources


Project Feedback + Evaluation

Project Workflow

  • Did you complete the user stories, wireframes, task tracking, and/or ERDs, as specified above?
  • Did you use source control as expected for the phase of the program you’re in (detailed above)?

Project Feedback + Evaluation

Technical Requirements

  • Did you deliver a project that met all the technical requirements?
  • Given what the class has covered so far, did you build something that was reasonably complex?

Project Feedback + Evaluation

Creativity

  • Did you added a personal spin or creative element into your project submission?
  • Did you deliver something of value to the end user (not just a login button and an index page)?

Project Feedback + Evaluation

Code Quality

  • Did you follow code style guidance and best practices covered in class, such as spacing, modularity, and semantic naming?
  • Did you comment your code as your instructors have in class?
  • Did you remove commented code?

Project Feedback + Evaluation

Problem Solving

  • Are you able to defend why you implemented your solution in a certain way?
  • Can you demonstrate that you thought through alternative implementations?
    • (Note that this part of your feedback evaluation will take place during your one-on-one code review with your instructors, after you've completed the project.)

Project Feedback + Evaluation

Total Score

Your instructors will give you a total score on your project between:

Score Expectations
0 Does not meet expectations.
1 Meets expectactions, good job!
2 Exceeds expectations, you wonderful creature, you!

This will serve as a helpful overall gauge of whether you met the project goals, but the more important scores are the individual ones above, which can help you identify where to focus your efforts for the next project!


Ready?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment