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
Check out this video to see the finished app in action.
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
- 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.
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.
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
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.
Please contact either myself (kevin@impactflow.com) or your hiring contact, and we'll get back to you as fast as we can!