Open-Smartwatch / open-smartwatch-os

The Open-Smartwatch Operating System.
https://open-smartwatch.github.io
GNU General Public License v3.0
973 stars 155 forks source link

Download center for watchfaces, 3D cases and more #104

Open mat942 opened 3 years ago

mat942 commented 3 years ago

Hello all,

Given user base is growing by the day and OSW offers a very high degree of customization I think a place to showcase each user creativity could be great. The idea would be to have a place we can download watchfaces and integrate them easily (maybe redo code so its a single file to replace?). It could also be used for 3d cases or apps later on. Something like an "OSW store" but all free with credit to creators of course.

Any thoughts? Happy to assist

richtepa commented 3 years ago

I would like to help too. Is there a plan? Do we make watchfaces in a single file first? Do we want to use an available system for sharing/downloading or do we want to code it ourseves? The user needs to compile and program the whole firmware. OSW-OS is hosted on GH. Is there a good way to integrate the Download center on GH (another Repo in combination with GH-Pages)?

richtepa commented 3 years ago

On a download center we could also make it possible to configure and install the FW on the watch via USB (later OTA). By selecting apps/watch-faces we could change the code correspondingly. Uploading should not be a problem, too. We only need to have an idea on how to build the FW from the code (client or server).

mat942 commented 3 years ago

I was thinking of runnign a wordpress site that can handle upload dowload and have either a unified watchface format or store firmware elfs.

mat942 commented 3 years ago

I would like to help too. Is there a plan? Do we make watchfaces in a single file first? Do we want to use an available system for sharing/downloading or do we want to code it ourseves? The user needs to compile and program the whole firmware. OSW-OS is hosted on GH. Is there a good way to integrate the Download center on GH (another Repo in combination with GH-Pages)?

I think the easiest way is make watch faces single file and shareable first We can then work on a peer review or voting system to score the best in a gallery format with easy implementation on the user side. Would be good to keep the watch face version independent and build independent (light/gps)

richtepa commented 3 years ago

I was thinking of runnign a wordpress site that can handle upload dowload

Wordpress is a simple solution, too. I'm not very experienced using Wordpress but there are a lot of plugins. Maybe there is the perfect one out there.

have either a unified watchface format or store firmware elfs

I'm not sure if elfs are the way to go. If you provide a watchface as .elf it will be the whole OS. This way you cannot add apps or change the config. Or did I miss something?

I think the easiest way is make watch faces single file and shareable first

Yes. :100:

We can then work on a peer review or voting system to score the best in a gallery format with easy implementation on the user side.

For watchfaces e.g. upload

Voting system is a nice idea.

Would be good to keep the watch face version independent and build independent (light/gps)

I'd prefer light+gps by default, but gps-only should be possible, too (e.g. if someone wants to shows a map or uses any other feature)

mat942 commented 3 years ago

something like this could work https://wordpress.org/plugins/bbp-voting/

mat942 commented 3 years ago

fully agree with your vision @richtepa

richtepa commented 3 years ago

Is @uvwxy d'accord with our plan?

Then I'll search and test for suitable wordpress plugins this weekend.

richtepa commented 3 years ago

@mat942 is there something you want to do? (I don't want to take it away from you 😉 )

simonmicro commented 3 years ago

I think the easiest way is make watch faces single file and shareable first

:100: - Problem is we are unable to compile a stand-alone add-on for the firmware, as the latter one may not include all used functions (optimizations, optimizations).

I was thinking of runnign a wordpress site that can handle upload dowload and have either a unified watchface format or store firmware elfs.

Brrr - who is up for maintaining that site in a secure way? Not me... I'm thinking a more static approach - like Hugo and then integrating into GitHub for the file / source storage (take a look into https://cinnamon-spices.linuxmint.com/ and his Github Repo https://github.com/linuxmint/cinnamon-spices-applets). Additionally everyone should be able to host a copy of the repo by himself easily? But that's just a personal preference...

But lets see, what you guys can build!

mat942 commented 3 years ago

We might want to create a community branch to have an architecture development for shareable watch faces

mat942 commented 3 years ago

good catch on the web maintenance, we will need to figure out a system for users to submit their ideas though so we keep the site populated

mat942 commented 3 years ago

your lead with tasmo also looks very promising

simonmicro commented 3 years ago

something like this could work https://wordpress.org/plugins/bbp-voting/

BUT this looks very good for a feature request page?! Maybe, maybe... Someone interested?

mat942 commented 3 years ago

something like this could work https://wordpress.org/plugins/bbp-voting/

BUT this looks very good for a feature request page?! Maybe, maybe... Someone interested?

https://wordpress.org/plugins/simple-feature-requests/

richtepa commented 3 years ago

The better way (I think) would be to utilize something like a website / docker container to compile the OS with all needed add-ons directly for the watch and then sent it over (OTA is WIP and will be soon ™️ finished)! A cool example would be https://github.com/benzino77/tasmocompiler

That's my favorite way, too. Creating the compiler will be hard.

Brrr - who is up for maintaining that site in a secure way? Not me... I'm thinking a more static approach - like Hugo and then integrating into GitHub for the file / source storage (take a look into https://cinnamon-spices.linuxmint.com/ and his Github Repo https://github.com/linuxmint/cinnamon-spices-applets). Additionally everyone should be able to host a copy of the repo by himself easily? But that's just a personal preference...

Thats why I suggested the GH approach earlier. We could create some small scripts and only display/provide the watchfaces from GH on the external download center. Editing would be in GH. (like Hugo but more tailored to our needs)

But lets see, what you guys can build!

I think we are still in the idea/planning phase. The more people share their ideas and taught on the different methods, the better the result will be.

richtepa commented 3 years ago

I have no idea on how to combine the files into one.

This weekend I started writing some code (https://github.com/richtepa/osw-store) for the download center. It's a bit rough and has a lot of loose ends I need to fix. (+cleaning the code up, security, more features, etc.) The design is also not pretty 😉 .

A preview of this possible solution can be found here: https://osw.richter.dev If you don't want to "sign up": username: demo password: 1234

If the feedback is mostly positive I will keep working on this way. ANY feedback is desired, negative too!

uvwxy commented 3 years ago

Sorry for the late response. Thank you for the great discussion! Here is what I picked up + my two cents:

richtepa commented 3 years ago

[...] ANY feedback is desired [...]

No feedback is feedback, too.

I wrote OswServiceTaskRawScreenServer.cpp [...] The server is not working yet, but the general code/stubs are there [...] creating customized builds via docker: this is something I could do

I think this is a point we could add to the backlog. But if this is something we (you) can do, great 👍 .

first share the c++ files [...]

Yes, in my opinion the page itself (providing the c++ files) would be the first step.

static vs wordpress [...] generated from markdown (maintained via github). either mkdocs (like the project page) or jekyll (like my website p3dt.net, there even nice tools to always show the latest additions)

I am not familiar with these tools. Is there a way to add a voting system (if we like to)? If there is nobody else, I think this task will be yours, too 😉 .

mat942 commented 2 years ago

Hi guys! discussion on this has been pretty much frozen since summer. Has anybody advanced any steps?