Skip to content

Latest commit

 

History

History
44 lines (26 loc) · 2.34 KB

INSTRUCTIONS.md

File metadata and controls

44 lines (26 loc) · 2.34 KB

Backend Coding Challenge

Introduction

Welcome to our coding challenge! Congratulations on successfully progressing to this stage. We appreciate the time you've invested in our selection process, and we wish you the best of luck!

At Idoven, we have a specific requirement. We aim to implement a microservice that accepts electrocardiograms (ECG) and provides various insights about them, such as calculating the number of zero crossings of the signal.

ECG Description

An ECG is characterized by a sequence of numerical values, which can be either positive or negative.

Task

Your task is to create an API that offers two main endpoints:

  1. An endpoint to receive the ECGs for processing.
  2. An endpoint to return the associated insights.

ECG Structure

  • id: A unique identifier for each ECG.
  • date: The date of creation.
  • leads: A list containing:
    • name: The lead identifier (e.g., I, II, III, aVR, aVL, aVF, V1, V2…).
    • number of samples: The sample size of the signal. Note: This value might not always be present.
    • signal: A list of integer values.

The information to be returned by the endpoint should indicate the number of times each ECG channel crosses zero. At this stage, we don't require any other data.

Technical Specifications

In undertaking this assignment, you're afforded the autonomy to select your preferred programming language, technologies, frameworks, documentation techniques, and testing strategy. We highly value solutions that prioritize readability, maintainability, and the thoughtful application of design patterns and architectural principles. While you have flexibility, keep in mind our primary tech stack revolves around Python and FastAPI.

Scalability

It's important to design this service with scalability in mind. We anticipate adding more features, and the data retrieval endpoint will eventually provide more extensive data analyses.

Security

Considering the possibility of offering this service to external clients in the future, integrating user authentication for both endpoints is essential. Ensure that users can access only the ECGs they've uploaded. It would be beneficial to have an ADMIN role solely for registering new users, without the privilege to send or retrieve ECG data.

Submission

Please provide us with the link to your solution on the GitHub repository.