DCC-EX / WebThrottle-EX

WebThrottle-EX is a web based (html,jQuery,JavaScript) Controller/Throttle for DCC-EX EX-CommandStations
https://dcc-ex.com/WebThrottle-EX
GNU General Public License v3.0
21 stars 13 forks source link

Planning for WebThrottle Version2 #63

Open ManiAkasapu opened 2 years ago

ManiAkasapu commented 2 years ago

Hi All,

Let's use this space for planning next WebThrottle version.

FrightRisk commented 2 years ago

Why don't we move this to "discussions"? I need to learn a bit more since we have issues and projects and now discussions... It can be frustrating trying to figure out how it all works together. In general, I want to:

  1. Keep issues for bugs, new features, and users posting suggestions or questions
  2. Use projects to track the Kanban Cards for tracking development
  3. Use discussions for us to coordingate the project

If anyone has ideas or knows more about the most efficient way to use GitHub, jump in.

matt-vdv commented 2 years ago

Sounds good! By the looks of it, there is a way to turn a discussion into a issue, so once a set of features emerge from a discussion, they can be turned into an issue and added to the project boards. Using discussions will make the dev process more transparent and allow people outside the org to give suggestions and feedback.

I wonder if we should also get in the habit of PRing more and reviewing each others PRs, as this could scale easier as we get more people involved?

murfett-au commented 2 years ago

Hi guys, has anyone considered using React for the V2? I have just started using DCC++ and when not playing with trains, I am a React web developer. JQuery is (was?) great but React takes a lot less code and is a lot easier. I could definitely help out. I will start a “Discussions” topic on React.

FrightRisk commented 2 years ago

It has been suggested that we use Vue instead of React. Personally, I would be reluctant to use anything that has anything to do with Facebook and they control React. I'm not saying it it out of the question, but I would have to be convinced. Of course at the moment, because I can't dedicate time to the project, whoever can help us advance it would need to be able to use the tools that work for them, while also not taking things in a direction, that when they leave, no one can pick up the code again. We would welcome your help. Send me your email to "frightrisk" at g-mail so I can add you to an email thread we have. I'll look for your discussion topic.

dcyoung-dev commented 2 years ago

Having looked through the current codebase, I wouldn't recommend rewriting using any other framework at this time.

Given that there are people using this web app it would be wise to add a test suite to ensure functionality is not removed or broken, before moving forward.

Unfortunately adding a test suite would come with the overhead of having to use a Node-based environment. I understand the friction that this may cause however these tools are widely used within the JavaScript community and are very well maintained. I'd add that keeping things simple is the key to maintainability. The tradeoffs between having to use an environment and having substantial test coverage would be weighted heavily towards the test coverage. An environment may only be needed to run the test suite allowing the main application code to remain "as is". This would allow folks to continue downloading and running the code, without the need for environment setup. I'd imagine there may be a few files that could be discarded by the person downloading the files.

With a test suite in place, it would then become a lot easier to refactor the existing codebase. I would advocate for implementing ES-Modules - supported by all major browsers - in place of a frontend framework.

FrightRisk commented 1 year ago

I'm trying to coordinate the issues and discussion here into one discussion. We are ready to move forward and needs to see who can help

FrightRisk commented 7 months ago

@ManiAkasapu , @dcyoung-dev , @matt-vdv @cjmayo , @murfett-au posting here as well and hoping someone is still interested and can help us finish this project

dcyoung-dev commented 7 months ago

I'm still interested in this project as I believe it has the lowest barrier to entry for newcomers.

I'd say the current codebase is incredibly difficult to maintain, with unrelated breakages when implementing changes. This led me to extract some functionality into separate modules, the serial connection and a command library, which in an alternative codebase has provided a lot of extra functionality.

My previous comment around testing is still relevant however I would, in hindsight, advocate for a full rebuild using a modern JS framework, React being by far the most popular, Angular being the most opinionated and Vue being the most accessible.

My advice would be to have a go at rebuilding in a framework with clear features outlined in a GH Project board. Each framework will have differing approaches to development, which will need to be agreed on before opening up for general code contributions.

Feel free to look at https://github.com/cloudthrottle/cloudthrottle-web/ as an example of a throttle built in React - I wouldn't go down the event driven route if I'd to start over - too much complexity

ManiAkasapu commented 7 months ago

@dcyoung-dev I have looked at this. I can support you in getting the UI/UX for the the Throttle if you are fine with it. Please feel free to ask any questions regarding WT1 to Me or @FrightRisk . Though I am not a developer, I will try to answer and support you through out the project.

dcyoung-dev commented 7 months ago

@dcyoung-dev I have looked at this. I can support you in getting the UI/UX for the the Throttle if you are fine with it.

Are you saying that there is UI/UX planned out for V2? I'd be more than happy to review it

ManiAkasapu commented 7 months ago

https://www.figma.com/proto/78kj5sLWHTwbfltu39Cl7l/WebThrottle-EX?node-id=1-3&scaling=scale-down&page-id=0%3A1

Let me know if you cannot access. I am moving things around.

This is the first screen I designed.

@dcyoung-dev

dcyoung-dev commented 7 months ago

@ManiAkasapu this looks good - nice work.

I'd be happy to build out a prototype and see how it feels 👌

ManiAkasapu commented 7 months ago

@dcyoung-dev Great. @FrightRisk Can we add @dcyoung-dev (David?) To Webthrottle Discord dev channel?

ManiAkasapu commented 7 months ago

Also @murfett-au is a react developer. Could contribute to the project. May be he is waiting on Decision.

FrightRisk commented 7 months ago

If anyone is not on Discord, join there and send a DM to @Flightrisk (Long story, but I am FlightRisk most places, but FrightRisk (created for Halloween) on places where that ID was already in use. I'll see your DM and add you to the developer role