Giter VIP home page Giter VIP logo

taller-chat's Introduction

Taller's Chat Test

A chat application that intends to beat Slack,
but is humble enough to understand this is never going to happen.

How will it work

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.

What will you need

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.

Requirements

To run it locally, you must have:

Getting started

1. Clone this repository

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.

2. Install & Run

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.

3. Have a look around

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.

4. The live coding interview

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.

Available commands

Makefile

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

Next.js

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

Disclaimer

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.

taller-chat's People

Contributors

gustavogodoi avatar lucasconstantino avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.