Skip to content

Backend Challenge - Matheus Samaniego#214

Open
MatheusSamaniego wants to merge 20 commits into
dynamox-s-a:mainfrom
MatheusSamaniego:matheus-samaniego
Open

Backend Challenge - Matheus Samaniego#214
MatheusSamaniego wants to merge 20 commits into
dynamox-s-a:mainfrom
MatheusSamaniego:matheus-samaniego

Conversation

@MatheusSamaniego

Copy link
Copy Markdown

Implementação da API de telemetria conforme o desafio.

Funcionalidades

  • Cadastro de sensores
  • Cadastro de medições
  • Consulta de medições
  • Exclusão de registros
  • Cálculo de métricas (count, min, max e avg)
  • Documentação automática com Swagger

Tecnologias

  • FastAPI
  • SQLAlchemy
  • SQLite
  • Pytest

Testes

Foram implementados testes unitários e testes de performance para validação dos requisitos de latência.

@andre-ghislandi-dynamox

Copy link
Copy Markdown

@MatheusSamaniego , thanks for your PR submission! Your implementation has been evaluated and our team will reach out to you regarding the next steps. Below you can find the detailed feedback on your solution.

Challenge 1: Signal Processing API - Evaluation

Functional Requirements and User Stories

  1. As a user, I want to be able to store a raw data series.

  2. As a user, I want to be able to retrieve metrics about the time series.

  3. As a user, I want to be able to delete a time series i've sent to the server.

  4. As a user, I want to be able to retrieve the number of time series i've stored in the server.

  5. As a user, I want to be able to retrieve the a full time series, i've stored.


Technical Requirements

  1. Use Python

  2. Use a REST-API framework (ex.: FastAPI)

  3. The latency between client and the server side must be below 350ms in all requests

  4. Use a database to store the time series data

  5. Ensure correct business logic and behavior with automated unit tests (ex.: pytest);


Bonus

  1. Deploy your application to a cloud provider and provide the api url.

  2. Implement a functionality that gives me a future prediction of the time series data.

  3. Add load balancer to the application.

  4. Add load tests to the application.


Evaluation Criteria

  1. Anyone should be able to follow the instructions and run the application.

  2. Back-end code successfully integrated with a persistant storage.

  3. Stories were implemented according to the functional requirements.

  4. Problem-solving skills and ability to handle ambiguity.
    -> Good architectural decisions with layered approach (API/Service/Repository), proper error handling, and input validation.

  5. Code quality, readability, and maintainability.
    -> Well-organized code structure, clear naming conventions, proper separation of concerns, and comprehensive documentation.
    -> Entities and routes named in pt-br (e.g.: medicoes instead of measurements) in code. Should be in english.
    -> A few unused imports were left in code.
    -> SQLAlchemy deprecation warning: Uses deprecated @app.on_event("startup") in backend/main.py:11

  6. Code is well-organized and documented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants