Taller's Chat Test
A chat application that intends to beat Slack,
but is humble enough to understand this is never going to happen.
The purpose of this test is to help us understand your technical proficiency and decision making process. You will install this application, check it out, and once it's up-and-running, we will schedule a live code interview, during which you will be asked to develop a couple of new features or apply some bug fixes.
This application consists of a Drupal 8 backend providing a GraphQL API which is consumed by Apollo on a Next.js based React application.
Have a look at STACK.md for more information on the technologies used.
To run it locally, you must have:
- Docker
- Docker Compose
- Make
You must git clone this project and re-publish it on your own GitHub account. Do not fork this repository; it would be easy for other candidates to copy your solutions.
This project relies on docker to setup the development environment and there are already some scripts available for common tasks on the Makefile at the root. Follow these steps to get started:
Build the containers ๐จ
make run
Grab a coffee โ
Big one. This takes a while.
Don't have SSD? Take two coffees.
See Drupal running ๐ง
Access http://localhost
Credentials
Username: admin
Password: password
Start Next.js application ๐ฅ
cd next
yarn dev
Access http://localhost:3000 ๐
We use yarn instead of npm. This is not necessary, but recommended.
It is important that you have the development environment operational before the interview. So take the time and study how things work on the application, maybe try to find some bugs. If you have any trouble, please open an issue on this repository and we'll get back to you as soon as possible.
During the interview you'll be asked to choose among many tasks to resolve while sharing your screen. Some will be simpler, some more advanced, and each of them will involve a different set of technologies. It's ok if you choose tasks with technologies you are more confident about, but we would very much appreciate seeing how you learn and apply new things on the way.
Each task you solve shall be developed in it's own branch. At the end, you must create a pull-request against your own repository for each task you worked on - even if incomplete - so that we can review the solution later and provide you feedback.
You probably won't solve more than a couple of tasks during the interview, and that's fine. No one is actually productive under pressure like that. That's why you'll be invited to solve a few more tasks after the interview, which we will review only by code and certainly take into account during our evaluation of your technical test.
Anytime you need, you can use these available Make commands:
Command | Description |
---|---|
make run |
Executes and enters the container |
make in |
Enters the active container |
make mysql |
Access MySQL instance used by Drupal |
make stop |
Stops all containers |
make clean |
Removes all containers |
make build |
Rebuild the app image |
The following commands are available on the Next.js React application:
Command | Description |
---|---|
yarn dev |
Start the application in development mode |
yarn build |
Build the application for production |
yarn start |
Start the application in production mode |
yarn build:start |
Build and start for production (good for CI) |
yarn lint |
Runs ESLint on your files |
yarn test:unit |
Runs Jest automated tests |
yarn test:unit:watch |
Runs Jest automated tests in watch mode |
yarn run:prepush |
Runs all tasks necessary for code-quality assurance |
This project is not a product, will not go into production, and has no intention to serve any purpose other than to be a constrained but near-real-world application used to test candidates to a development position at Taller.