QiTech-Industries / Winder

Filament winding machine powererd by ESPdruino
GNU General Public License v3.0
27 stars 7 forks source link

Move Webinterface and Update Server to different Repo #20

Closed DreiDe closed 2 years ago

DreiDe commented 2 years ago

Currently all Code is stuffed together in this Monolithic Monorepo architecture. This includes

For better maintenance and a clean separation of concerns this architecture doesn't fit well. There are a couple of problems:

Suggestion: Seperate the three parts in three independently versionable and deployable repos called winder-ui, winder-esp, update-server

DreiDe commented 2 years ago

What do you think of this idea @happybrick ?

happybrick commented 2 years ago

@DreiDe I am not experienced enough to provide a good answer, i think having a look at how other projects are solving these types of issues (and maybe asking other people or on stackoverflow) could help.

First of all: An independent update-server totally would make sense as it is an independent service that could be used not only for winders in the future. Not sure how much restructuring this would require though.

How are we going to handle things that concern the whole winder-project rather than the frontend or backend alone? I am thinking about complex(or sometimes unclear) issues and documentation (architecture, api, handbooks, etc.).

DreiDe commented 2 years ago

@happybrick As the Webinterface and the ESP code have a completely different structure, they need independent documentation anyways.

The API should be mostly multy purpose, so theoretically the customer can build its own frontend based on the endpoints. The plan is to continue developing the ESP code into a cable communication based version. So the Webinterface will then stop working with it from version 1.0 and get replaced by the Desktop App.

The user Handbook should be kept inside the Webfrontend Repo, as this is the only part the customer gets to see.

For simplicity when using the Hardware Library I would suggest adding it as git submodule to the ESP Repo.

DreiDe commented 2 years ago

There are now three repositories WinderWebInterface, Winder, UpdateServer.