/Scada-LTS

Scada-LTS is an Open Source, web-based, multi-platform solution for building your own SCADA (Supervisory Control and Data Acquisiton) system.

Primary LanguageJavaGNU General Public License v2.0GPL-2.0

Open Source, web-based, multi-platform solution for building your own SCADA
(Supervisory Control and Data Acquisition) system. Code released under the GPL license.

GitHub release (latest by date)

Build Status GitHub all releases

See our GitHub Wiki page to take the first steps inside Scada-LTS project. There you can find QuickStart Guide how to run or build this application. Follow the latest changes and share your contribution with our team! There is also a Scada-LTS users community so if you have a problem feel free to ask questions on StackOverflow or our GitHub Discussions. For the developers we are preparing a complete code documentation that will contain all the REST API interfaces described with example usage. To do that we use Open API specification in version 3 that is compatible with most of the modern API tools like Swagger or Postman. Documentation file can be found in Scada-LTS/doc directory. To take your first steps inside Scada-LTS we suggest to get acquainted with video tutorials on YouTube or with ScadaBR instructions.

Follow the Release Section to be up to date with the latest features and see the specific version changelogs.
We follow the Semantic Versioning Guidelines to organize changes in our application.

If you need support for deployment please contact us and find more information on our website

Issues and ideas

Have you found a bug? Do you have idea for a new feature? Open a new Issue on our GitHub project site! Please follow the issue guidelines and make sure that your issue is not already reported. Try to write in english and explain what you think in a clear and understandable way.

Special templates have been prepared:

  • "Bug report" - detailed bug report (including a scenario that allows you to repeat the error);
  • "Feature" - new feature, or an extension of the old ones;
  • "Feature request" - proposal for a new feature, or an extension of the old one;
  • "Report a security vulnerability" - application security vulnerability reports;

We recommend using them;


Development

Building the application

To build the application on your own environment you can use Gradle or Apache Ant build tool. Ant is now marked as @depracated because soon it will be removed from that project. If you want to start the development of Scada-LTS find quick-start tutorial on our GitHub Wiki page.

We provide example scripts that can be used inside Scada-LTS project to perform specific operations. Commands with their explanations are listed below:

Gradle Tasks

To run Gradle Task you have to use gradle version 6.8.1 or similar with Java version 11. It should also work on other versions but you have to change the targetVersion in build.gradle file.

Command Explanation
gradle war Build Scada-LTS war file
gradle run Launch Tomcat instance
gradle runDebug Launch Tomcat instance in debug mode
gradle buildRun Build and start Scada-LTS application
gradle buildRunDebug Build and start Scada-LTS application in debug mode
gradle test Launch Backend Unit Tests
gradle scadalts-ui::testUi Launch Frontend Unit Tests
gradle -PskipUi=true buildRun Build and start app without building UI

Using parameter -PskipUi=true you can reduce the compilation time for example if you made no change. More details how to build and develop the Frontend sub-project is described in readme.md file in scadalts-ui directory.

###Ant tasks @depracated

Examples of run tasks

Command Explanation
ant run Start Scada-LTS application using Tomcat server
ant build-run Build and start Scada-LTS application
ant build-skip-test-run Build and start Scada-LTS application without running Tests
ant build-no-ui-run Build and start Scada-LTS application without building user interface
ant build-no-ui-skip-test-run Build and start Scada-LTS application without building user interface but without Test task
ant run-debug Start Scada-LTS application in debug mode on Tomcat server
ant build-run-debug Build and start Scada-LTS application in debug mode
ant build-skip-test-run-debug Build and start Scada-LTS application in debug mode without tests

Examples of build tasks

Command Explanation
ant build Build complete Scada-LTS application
ant build-skip-test Build complete Scada-LTS application without testing
ant build-no-ui Build just a core application without Vue.js user interface
ant build-no-ui-skip-test Build just a core application without Vue.js user interface without testing
ant update-ui Update running application with latest frontend application changes
ant create-war Prepare WAR archive from existing resources
we suggest to perform ant build task before

Examples of test tasks

Command Explanation
ant test-junit Launch Java Unit Tests
ant test-frontend-unit Launch Vue.js tests

SeroUtils library license

Matthew Lohbihler matthew@serotonin.ai has granted us permission to use the SeroUtils.jar library for ScadaLTS team. ScadaLTS team can use the code seroUtils without limitation.

Fragement with the correspondence of Grzegorz Bylica and Matthew Lohbihler:

"(...) The good news is that you may hereby and without limitation use the seroUtils code as you like. (...)"