ImpactFlow Frontend Code Challenge
This challenge is to complete the frontend javascript implementation for a simple CRUD bug tracking application. In this BugTracker app, a user can:
- Create and fill out new bug reports
- View existing bug reports
- Refresh the view if it is stale
- Edit existing bug reports
- Delete existing bug reports
How is this BugTracker app expected to behave?
Check out this video to see the finished app in action.
What do I do to complete the challenge?
You do the following:
- Fork this repository
- Ensure you have NodeJS 4.4.0 LTS (or equivalent) installed
- Ensure you have
make
installed - Search the project for
@TODO
comments which describe the missing implementation - Implement the missing pieces, and test the implementation
- Email ImpactFlow with a link to your fork
How do I build the project?
- Clone this repo
- To install all dependencies and build the project, run
make
- To start the node server, run
make server
. You should be able to view the app by visitinglocalhost:3000
in your browser. - To run the tests, run
make test
. There will be a handful of starter tests which should pass.
How will I be graded?
We'll be looking at how much impementation is completed, the style in which it is written, and the testing which covers it. In general:
- DO try to implement as much as you can
- DO aim for clean code
- DO write tests for your implementation
- DO use meaningful git commits (it's helpful to see how you work :) )
There are some portions of the project which we will not be judging.
- DON'T worry about editing the templates. They may be useful to inspect, but they should already have everything you need.
- DON'T worry about editing the css. Same as above.
- DON'T worry about editing the server. The server is a one-off to simply serve the frontend javascript and to give it something to talk to.
What stack is being used in this project?
This project relies on the following stack:
- Backbone 1.3.2
- Marionette 2.4.4
- JQuery 2.2.1
- Underscore 1.8.3
- RequireJS 2.1.20
- Karma Test Runner
- Jasmine Assertion Framework
- Sass CSS Compiler
- Jade Template Language
That stack is cool, but can I use technology <X>?
Sure. The default stack is a close representation of the stack we use daily, but if you love React, Angular, etc, feel free to submit a solution using it.
I have additional questions / I need more time / I'm confused about <X> / etc
Please contact either myself (kevin@impactflow.com) or your hiring contact, and we'll get back to you as fast as we can!