#A simple Nutshell dashboard
##Task
Nutshell https://www.nutshell.com/ is the CRM system that we currently use. We'd like you to show how well you deal with technical integrations and APIs so we would like to see you use Nutshell's API.
The Nutshell API is documented here:
https://www.nutshell.com/api/ Use these authentication parameters to connect to Nutshell's demo API.
Username: jim@demo.nutshell.com
Key: 43c789d483fd76547b1f157e3cf5e580b95b9d8c
Develop an integration that does the following:
- Get the most recent lead.
- Get most recent email on that specific lead
- List all accounts with at least one lead, list when it has has been last contacted
Finally, one of the following:
-
A simple dashboard to display the results
-
Store the results in a database
##Installation
###Prerequisites
###Install dev locally
-
Clone the repo
-
Create a
.env
file in the root directory of the project. Set the two following variables to match your credentials.USERNAME="jim@demo.nutshell.com" KEY="43c789d483fd76547b1f157e3cf5e580b95b9d8c"
-
Run
composer install
to get PHP dependencies -
Run
npm install && bower install
to install front-end dependencies
- In the project directory run
cd app && php -S localhost:8080
to start back-end part - In the root of the project directory run
gulp serve
to run front-end
##Notes
- Back-end part is serving all data on purpose so it can be used in other projects or in other purposes as well
- Asumes that you cast the URL to a chromecast
- Only quering the first 100 accounts, default value can be changed here or by passing a query parameter with the request
?limit=500
- The data is cached in localstorage & auto updates every 5 minutes
##2do
- Add back-end error handling
- Add JS error handling
- Add notifications so the user gets notified when the dashboard is auto-updated and when there is new data
- Add Security layer so the dashboard is not available with out a secret/key
- Clean up the data that is served (from back-end) and stored in front-end