## <a name=“technical-expectations”> Technical Expectations
Every project will be a bit different, but they need to share some common technical characteristics:
-
You must use an external OAuth provider to authenticate users
-
You must consume an external API
-
You must implement a production quality user interface
-
You must optimize your application optimizing your database, implementing caching, using background workers, and sending AJAX requests
### Project Scope
A good project idea should:
-
Break down into logical iterations so that you can deliver a strong product on every checkin
-
Be something that real people would want to use to solve a problem
-
Have enough technical challenge to be worth your time (as opposed to a content challenge)
## <a name=“evaluation”></a> Evaluation
You’ll be graded on each of the criteria below with a score of (1) well below expectations, (2) below expectations, (3) as expected, (4) better than expected.
### Feature Delivery
**1. Completion**
-
4: Developer completed all the user stories and requirements set by the client in timely manner.
-
3: Developer completed all the user stories and requirements set by the client.
-
2: Developer completed most of the user stories and requirements set by the client.
-
1: Developer completed the user stories and requirements partially.
**2. Organization**
-
4: Developer used a project management tool and updated their progress in real-time.
-
3: Developer used a project management tool to keep their project organized.
-
2: Developer used a project management tool but didn’t update the progress frequently.
-
1: Developer failed to use a project management tool to track its progress.
### Technical Quality
**1. Test-Driven Development**
-
4: Project shows exceptional use of testing at different layers (above 95% coverage).
-
3: Project shows adequate testing (90% - 95% coverage).
-
2: Project shows gaps in test usage/coverage/design (85 - 90% coverage).
-
1: Project lacks sufficient testing (under 85% coverage).
**2. Code Quality**
-
4: Project demonstrates exceptionally well factored code.
-
3: Project demonstrates solid code quality and MVC principles.
-
2: Project demonstrates some gaps in code quality and/or application of MVC principles.
-
1: Project demonstrates poor factoring and/or understanding of MVC.
### Product Experience
**1. User Experience**
-
4: Project exhibits a production-ready and polished UX.
-
3: Project exhibits a production-ready user experience.
-
2: Project exhibits some gaps in the UX.
-
1: Project exhibits inattention to the user experience.
**2. Performance**
-
4: Project pages load on average under 300 milliseconds.
-
3: Project pages load on average under 400 milliseconds.
-
2: Project pages load on average under 500 milliseconds.
-
1: Project pages load on average over 500 milliseconds.