Skip to content

mpdevilleres/imagestore

Repository files navigation

Usage

You can access the service via http://3.29.127.29

NOTE: https was not possible due to the timeline given thus a valid domain was not able to get issued and subsequently the SSL certificate

Playing with the codes

  • to run the application locally please run as below and open your browser http://localhost:8000

    $ make up-local
  • to run test and linting

    $ uv sync
    $ make checkcodestyle
    $ make test

Tasks

  • Ability to resize the frames from 200 to 150 columns.
  • Ability to store the resized images in a database.
  • Ability to request image frames using an API with depth_min and depth_max query parameters.
  • Ability to use colormap to generate the frames.
  • Python should be the major langauge used.
  • Deploy the application in a cloud service.

Highlights

  • A simple UI has been added to simplify the process of viewing the frames.
  • Standard software practices were applied such has linters, tests, scripting and docker build.
  • A document database (MongoDB) was chosen as the database due to the nature of the data given.
  • The Application is deployed in a EC2 machine.
  • as a cloud native design, an object store support was added, in the current code based, a minio instance is utilize which can be change easily to s3 by changing some environment variables.

Things I wish I had more time to do

  • Authentication layer
  • Validation of file upload
  • More test specially for failed actions
  • Better UI 😅
  • Github Action for building the image
  • Github Action for running CI job such as linting and tests

Architecture and Stack

  • MongoDB: is the main database as the image frames fits well as document.
  • Minio: an object store that has local/self-hosted option and is 100% compatible to s3, allowing a easy to switch vendor.
  • Traefik: a cloud native loadbalancer.
  • Python: My Programming language loved by many 🤓
  • FastAPI: Python Framework for quick and easy API
  • Polars: a Faster alternative to pandas

About

An imagestore and renderer of image frames

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published