Code Monkey home page Code Monkey logo

engineering-test's Introduction

Quick test

Introduction

Thanks for using this test. We have created a simple api that deploys in a docker container. We've devised some small tasks that will help us guage your fit.

Please follow the installation instructions carefully and don't spend any more time than allocated in the tasks below, if you run out of time or it is too exhausting please post what you have and we will review it regardless.

Installation (15 minutes)

Prerequisites

Steps

  1. Git clone the repository git clone https://github.com/ECliamb/engineering-test.git
  2. cd into the engineering-test directory
  3. run docker-compose up -d --force-recreate (some versions of docker will use docker compose rather than docker-compose)
  4. run docker exec -it engineering-test_eurocamp-api_1 npm run seed:run (sometimes the name is different, check with docker ps)
  5. Check that there is data in the database tables (see below for connection details). Also review the api documentation at http://localhost:3001/api
  6. Load the postman collection from the root directory 'Engineering.postman_collection.json' and test the api endpoints

Connection details

Credentials for your database GUI

HOST=localhost PORT=5433 USER=postgres PASSWORD=postgres NAME=eurocamp_api

Tasks

Your task is to answer some questions and complete the following tasks below - We're looking for solutions that demonstrate passion, effort and knowledge (typescript, caching, testing, state etc.). Send a link with your solution and accompanying notes to [email protected] or your representative. Please note we can't accept zip files containing solutions, please utilise github, dropbox or google drive.

With all tasks - please add comments, utilise tests and submit clear instructions on running your solution.

All Applicants

Task 1 (15 minutes).

  • Review the eurocamp_api database and make notes on the current structure and state of the database. How would you improve it using relational database best practices? We're mainly interested in how you would improve the database theoretically

Task 2 (10 minutes)

  • Brief explanation of the latest practices in your respective field of expertise.

Senior Roles (1 hour)

โš ๏ธ Please note that you should just picks the tasks that fit your specialisation e.g. .NET developer should choose [.Net] tasks. Do not do all the tasks

The API at localhost:3001 is what you will communicate with. It has 3 entity collections with various CRUD operations.

However some of the endpoints do fail sometimes and return exceptions or 500 error responses every so often.

Please note we would appreciate Typescript being used.

[.Net Only] >> Task 1.

Create a .NET core client service that consumes the api (as seen on http://localhost:3001/api) and actions the api endpoints. This service should handle api failures or bad responses.

[Node Only] >> Task 1.

Create a Node client service that consumes the api (as seen on http://localhost:3001/api) and actions the api endpoints. This service should handle api failures or bad responses.

An example of a test(s) is expected.

[Frontend Only] >> Task 1.

Using your favourite frontend framework please interact with the API and handle potential API failures.

Thanking you

Please understand we don't expect you too spend too much time on this. We're happy to review whatever you finish at [email protected]

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.