Skip to content

Latest commit

 

History

History
47 lines (34 loc) · 2.17 KB

README.md

File metadata and controls

47 lines (34 loc) · 2.17 KB

Coding Challenge [FullStack] @ Memberspot

Incentive

This task will cover a few core concepts that you will encounter when working on a TypeScript project at Memberspot.

Challenge

Write a small application that fetches data from an API (we recommend this one) and displays it in a paginated list.

Requirements

  1. Display a list of data with at least 4 fields.
    1. The list should include at least 1 aggregated value.
    2. For the example API, display a person's name, birth_year, homeworld, and the homeworld's terrain.
  2. Implement an input above the list to case insensitively filter the data.
  3. The list should be paginated, with a page size of 10. (Lazy loading is preferred over traditional pagination).
  4. The repository should be a nx monorepo
    1. It should have a frontend application called frontend
    2. It should have a backend application called server
    3. A Node library that contains models and dtos that are shared between the two applications
    4. The framework that should be used for models, dtos and validation should be zod
  5. Have some fun and be creative!

Notes and Hints

  1. You are free to choose any technology you want, but...
  2. Our company has a decided tech stack:
    1. Angular for client-side apps.
    2. NestJS for server-side apps.
    3. Tailwind CSS.
  3. Use an API.
    1. If it is public, try to cache your data and make as few requests as possible.
    2. Feel free to build your own.
  4. If you want to mock a database, use a JSON file and load it into memory.
  5. Please use strict mode in your tsconfig.

Submitting

  1. Fork this repo and send us your solutions.
  2. Notify Memberspot.

Alternatives

If you do not have time for a take-home assignment, let us know! In this case, we would try to implement parts of it live in a technical interview.

If you have a project to which you contribute regularly, we can also discuss that. We are interested in your work.