jflamy / owlcms4

Olympic Weightlifting Competition Management System
https://owlcms.github.io/owlcms4/#/index
Other
67 stars 22 forks source link

I would like to merge the Icelandic kraft.is software with owlcms #1105

Open judyfong opened 2 months ago

judyfong commented 2 months ago

Is your feature request related to a problem? Please describe. Currently powerlifting and weightlifting in Iceland is merged together due to so few people participating but we use different software due to them currently being classified as separate sports. I find this inefficient when the sports are so similar.

Describe the solution you'd like I would like to show you the software used for kraft.is. Here is a video demonstration: https://www.youtube.com/watch?v=bkmfWA9hyPw and to consult on what we're doing wrong. In exchange, you get to take what you see in our software and export it to owlcms.

Describe alternatives you've considered https://github.com/jokull/gymrat I also personally just have an exercise workout software that I am making to log my workout progress. Ultimately my goal is merging all of these softwares together but also still allowing them to have their separate branches.

Additional context The reason I want to do this is so we have time to work on adding TTS/AI to our software as my software background for the past seven years is actually Icelandic Language Technology and Software control, both subbranches of software development.

Please let me know if this would be better on the google groups

judyfong commented 2 months ago

I would like a for profit license on behalf of kraft.is 's affiliates

jflamy commented 2 months ago

The issues with supporting powerlifting is that the mechanisms for declaring the requested weights, the rounds, the timing, are actually completely different than what olympic weightlifting does.

You could actually use owlcms as a basis, but all the logic implemented in the FieldOfPlay class would have to be completely redone -- that's where all the logic for deciding what is legal, what is not, and all the updates sent to the scoreboards is done. Plus all the layout for the scoreboards, since there are three lifts. The database schema in owlcms is currently very simple due to historical reasons, and it would need to be redone -- the Athlete class in particular is very much tied to the sport of Olympic Weightlifting.

You will need a for-profit license if you actually go ahead and create the powerlifting variant as a derived work from owlcms and sell it for profit. Such a license would normally be a fee for each competition in which the software is used.

judyfong commented 2 months ago

Maybe i can simplify the database further to enable expansion to powerlifting and the rest of the olympic sports

On Thursday, September 19, 2024, Jean-François Lamy < @.***> wrote:

The issues with supporting powerlifting is that the mechanisms for declaring the requested weights, the rounds, the timing, are actually completely different than what olympic weightlifting does.

You could actually use owlcms as a basis, but all the logic implemented in the FieldOfPlay class would have to be completely redone -- that's where all the logic for deciding what is legal, what is not, and all the updates sent to the scoreboards is done. Plus all the layout for the scoreboards, since there are three lifts. The database schema in owlcms is currently very simple due to historical reasons, but and it would need to be redone -- the Athlete class in particular is very much tied to the sport of Olympic Weightlifting.

You will need a for-profit license if you actually go ahead and create the powerlifting variant as a derived work from owlcms and sell it for profit. Such a license would normally be a fee for each competition in which the software is used.

— Reply to this email directly, view it on GitHub https://github.com/jflamy/owlcms4/issues/1105#issuecomment-2359653567, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABUMNYE4Q2TULNEY2SWO6XLZXIIXZAVCNFSM6AAAAABOM4JV5GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJZGY2TGNJWG4 . You are receiving this because you authored the thread.Message ID: @.***>

jflamy commented 2 months ago

The main issue is not the database (though it is basically the same design as when I started in 2009 and could use a good cleanup). But that means redoing all the queries, and it brings little value. The issue is that the program is a state automaton where all the very intricate rules for what you are allowed to do when in Oly lifting are encoded. The user interface elements from the referees and timekeeper and announcer trigger state transitions in the class "FieldOfPlay". This in turn updates the database, and sends screen update commands to all the connected browsers. The program also has rules about the specific OL protocol for introduction of athletes and officials, for the break between the two lifts, etc.

So the first thing you need to do is understand broadly how the FieldOfPlay class operates, and what a similar class would need to do for PowerLifting. Then look at the AthleteSorter class to figure out how the lifting order and winning order are computed -- these should be ok.

Then you need to figure out how information is entered by the officials. The current athlete card is fairly intricate, and is done for two lifts, and that seems to be fairly different in the two sports (or maybe not).