Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ Experimental ] Backend #37

Open
Soare-Robert-Daniel opened this issue Apr 2, 2021 · 1 comment
Open

[ Experimental ] Backend #37

Soare-Robert-Daniel opened this issue Apr 2, 2021 · 1 comment
Assignees
Labels
experimental future help wanted This can be used to identify issues that the maintainers of the project would like some help with.

Comments

@Soare-Robert-Daniel
Copy link
Collaborator

Soare-Robert-Daniel commented Apr 2, 2021

Introduction

One of the Logo Maker's ideas is to have a backend for saving the configuration made by users. At this stage, I do not know if Logo Maker deserves a serious backend. Still, we can use the opportunity to test some technologies for educational purposes or do some training - or as an interview exercise.

Eventually, if one of the prototypes is a success, we can use it as a backend. With the logos stored, we can run some analytics to see the most popular options and create suggestions based on them.

Overview

diagrama_api_logo_maker

There are 2 main functionalities:

  • Read & Save the logo configuration
  • Fork

For the first one, the scheme is straightforward: you send the JSON configuration to the server, and the server gives back a link from where you can access the configuration later on.

For the second, the fork also has a parent from which it was derived. The parent's id is used to access the original configuration. The structure is like a linked list. The repeated action to get the parent sends you to the original configuration. But in the grand overview, the struct is like a tree. A configuration can have many forks, but only the parents and not other children are the forks you can get. When you create a fork, you can do the same as in the first function; besides, you need to add a field as a reference to the parent, or you can save only what changes, and when the content is retrieved, you can merge the configuration with the parent. The structure of the access link will be the same like in Read & Save, but with additional information in the response that the configuration is a fork.

Example.

{
    "configuration": { /* data */ },
    "fork": {
           "parentId": "213"
     }
}

Server

We can toy with those technologies in Virtual Machine / Container:

  • NodeJs / Deno - Js/Typescript
  • .NET - C#/F#
  • Pheonix - Elixir
  • Laravel - PHP
  • Flask / Django for REST - Python
  • Spring for Rest - Java/Scala/Kotlin/Clojure
  • Rust
  • Go

Or we can test some serverless services:

  • AWS Lambda
  • Google Cloud Functions
  • Azure Functions
  • Cloudflare Workers

Databases

It is the same case as in the Server; we can test:

  • MySql
  • Postgress
  • MariaDB
  • MongoDB

For the cloud part:

  • S3
  • Cloud Bigtable\Datastore
  • Azure database

@ineagu, @selul, @HardeepAsrani what do you think?

@Soare-Robert-Daniel Soare-Robert-Daniel added help wanted This can be used to identify issues that the maintainers of the project would like some help with. future experimental labels Apr 2, 2021
@Soare-Robert-Daniel Soare-Robert-Daniel self-assigned this Apr 2, 2021
@ineagu
Copy link

ineagu commented Apr 2, 2021

I think is a good idea that we now have documented for potential research projects or interviews/internship 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
experimental future help wanted This can be used to identify issues that the maintainers of the project would like some help with.
Projects
None yet
Development

No branches or pull requests

2 participants