JS Challenge
The goal of this challenge is to build a search interface based on the Coveo REST API. Complete instructions: Coveo Front End Challenge
I've decided to use Angular 2 to take up the challenge. Here's is the final result
What are my goals with this challenge?
Things I expect to learn
Things that I know but that need to be refreshed
Things that seems cool
- Angular Material - Material Design components for Angular 2 apps
 - Coveo JavaScript Search Framework
 
References used to reach my goals
Angular 2
Coveo
Angular Material
JavaScript
Pitfalls / Time consuming issues
TypeScript
- I had to refresh my general knowledge regarding ES2015.
 - I didn't have the reflex to type everything when coding JavaScript.
 
Angular 2
- Troubles passing values between components (parents, childrens, and siblings).
 - I wasn't familiar with the Observer Design Pattern and I had to learn the basics if I wanted to use it over the Promise Pattern.
 - I decided to upgrade Angular 2.0.0-rc.7 to Angular 2.0.0 final.
 - I found many examples regarding Angular 2 but most them are for previous versions.
 - I still have unresolved issues with Routing to pass and use parameters with Coveo REST Search API
 
Angular Material
- I still have unresolved issues for importing the library.
 
Coveo REST Search API
- I had troubles moving from a GET to a POST request with Angular 2 and RxJS Observer.
 
Coveo JavaScript Search Framework
- I had conflicts with my routing and the \q? parameters appended to my URL.
 
Github
- I am used to work with SVN... configuring WebStorm was not hard but I had unexpected results. I have decided to use GitHub Desktop.
 
Heroku
- I had issues for packaging my application with package.json (dependencies vs devDependencies)
 - Deploy from GitHub
 - I had issues with the port used by lite-server. I had to create the config file /bs-config.js at the root of my project.
 
module.exports = {
    "port": process.env.PORT
};
Unit tests
I've decided to build small unit tests regarding the Coveo REST Search API and my challenge. Here's is the source code
Framework and libraries

Authors and Contributors
Louis-Guillaume Carrier-Bédard (@lgcarrier)