Giter Club home page Giter Club logo

backend-code-challenge's Introduction

๐Ÿ“– About

The challenge is designed to provide a simple but interesting and playful challenge to solve. The goal is to validate that your skills meet the project requirements.

Be aware that even though it's a simple challenge, it still takes some time to solve.

What we are looking for in a candidate

  • ๐Ÿง  Analytical mind
  • ๐Ÿ“ Data modeling and API design skills
  • ๐Ÿ‘จโ€๐Ÿ’ป Software engineering excellence
  • ๐Ÿ”Œ Basic DevOps skills
  • ๐Ÿ” Attention to detail

โŒจ๏ธ The Code challenge

1. Business requirements

You are provided with a catalog of Pokemons (check out pokemons.json). The catalog includes basic information about Pokemons, their statistics, and relationships. Your task is to implement an API that would serve data needed by a website where users can browse the catalog and save their favorite Pokemon.

๐Ÿ’ก Hint: We're testing your ๐Ÿง  Analytical mind skills. You have a data file, but you don't have a proper specification.

2. Functional requirements

The RESTful API should implement methods to:

  • get a list of Pokemons, including:
    • pagination
    • search by name
    • filter by Pokemon type
    • filter by favorite
  • get a Pokemon by id
  • get a Pokemon by name
  • get a list of Pokemon types
  • set/unset Pokemon as favorite

๐Ÿ’ก Hint: We're testing your ๐Ÿ“ Data modeling and API design skills. Databases and interfaces have some design techniques (and best practices).

3. Non-functional requirements

We want you to implement a pseudo-Bearer authentication. Just showcase the bare minimum building blocks. No need for CRUD operations or a full-fledged solution. The goal is to identify and link a user to his favorite items.

๐Ÿ’ก Hint: We're testing your ๐Ÿ‘จโ€๐Ÿ’ป Software engineering excellence skills. The task could sound complicated, but the trick is not to over-engineer it.

4. Tech stack

We have pretty simple tech stack requirements that you should try to meet:

  • git
    • Please commit your code every day or whenever you finish more extensive functionality. We want to see your progress.
  • Node.js
    • The version is up to you. But specify it in the code through nvm.
  • yarn
    • We prefer it over npm.
  • TypeScript
    • A typing system is essential in our projects. Avoid using any. Follow best practices.
  • Docker
    • Every backend developer should know about DevOps. Therefore, your solution should include a Compose file.

    ๐Ÿ’ก Hint: We're testing your ๐Ÿ”Œ Basic DevOps skills. For instance, we care about multi-stage builds, leveraging build cache, or non-root privileges.

  • Jest
    • Jest is how we test.
  • Swagger/OpenAPI
    • We use OpenAPI specs for data validations and contractual agreements between systems/tools.

For the Brainio project:

  • MongoDB
  • Mongoose
    • You should utilize seeding.
  • NestJS

For the Big AI Models project:

  • PostgreSQL
  • MikroORM
    • You should utilize migrations and seeding.
  • Fastify

How should it work

We expect that we just run docker compose up and everything "automagically" sets up and runs. The application should console out the URL of the API endpoint and the swagger/OpenAPI specification.

backend-code-challenge's People

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.