Hello there Stone Candidates!
To better assess your technical skills, we prepared this small challenge as part of our hiring process.
You can do it in typescript or just javascript as well.
Create a simple Dashboard that shows Running and Stopped containers from a Docker server, and you should also be able to start, stop, delete that containers and create new ones sending the image name.
Examples of similiar apps are the following:
What you must know about the app:
- Docker should be running on your local machine.
- The integration should be using your local Docker-API.
- We expect a dashboard to visualize the container and a backend that interacts with the Docker API.
- You can use any frameworks in both the backend and the frontend.
Here are some of the checkpoints to guide you through this challenge, you don't need to do all of them, but do as much as you can. They are not in any particular order, use your analytical skills to prioritize them.
- Create the backend in Node.
- Create the endpoints that dashboard will interact with backend. Example: /api/start, /api/stop.
- Create a Dashboard to show the containers and the controls.
- Create the following interactions:
- Start stopped containers
- Stop running containers
- Launch new containers
- Delete containers
- Create Instructions how the application can be executed on the README.
- Some unit tests with an framework of your choice.
You will need to complete the challenge:
- A computer with internet
- Javascript or Typescript development skills.
- Some front-end development skills.
- Some docker operational skills.
The deliverable for this challenge is the code, inside a public GitHub or any git repository of yours. You should provide us the URL for it.
We should be able to run your application on our computers, and your README should have all the information necessary for it.
Send us a report telling how was your experience with this challenge. Even if you can't finish, send the report because for us is more important to know your dedication on a project, thinking, and analytical skills, than looking only at your technical skills.
We will evaluate you based on how well the system is architected, your code and tooling practices, your instructions and documentation on the README.MD and how well you defend your idea and decisions when presenting it to us.
If you have any questions, please send an email to your contact at Stone that we will reply as fast as we can :)