A web-based IDE for Logic Programming.
Online Demo
Find a live demo at www.mat.unical.it/calimeri/projects/loide
Check the status of our services at https://loide.freshstatus.io
Purpose
The main goal of the LoIDE project is the release of a modular and extensible web-IDE for Logic Programming using modern technologies and languages.
A further goal of the project is to provide a web-service with a common set of APIs for different logic-based languages.
Further information can be found in the Wiki
Key Features
- Syntax highlighting
- Output highlighting
- Layout and appearance customization
- Keyboard shortcuts
- Multiple file support
- Execution and Solvers options definition
- Import and Export files
Getting Started (Installation and Usage)
These instructions will get you a copy of the project up and running on your local machine.
Prerequisites
It only requires Node.js®
Download
You can find the latest version of LoIDE here.
Otherwise you can clone this repository.
Remember that you can always see all the releases of LoIDE here.
Install
Install dependencies:
npm install
Now you can run LoIDE in development or in production mode.
Run in production mode
In this mode, LoIDE will be optimized for production.
Start the server:
npm start
Use LoIDE in a browser at:
http://localhost:8084
If you wish to run LoIDE over HTTPS, you must provide paths to certificate files in the app-config.json
file.
Then, you can start LoIDE in a browser at:
http://localhost:8085
Run in development mode
Run LoIDE in development mode only for development and testing purposes.
Start the server:
npm run start:dev
The browser will be opened automatically LoIDE in at:
http://localhost:7000
Note
You need an "executor" in order to run the solvers.
If you like it, you can use our EmbASPServerExecutor.
Built With
- Ace - The "base" of our editor
- Bootstrap - The front-end web framework used
- Clipboard.js - Used to create text boxes with copyable text
- Font Awesome Icons 4.7 - Icon set used
- jQuery and its UI Layout plugin - Used to improve the UI
- jQuery contextMenu 2 - Used for to create the context menus
- Mousetrap - Used to implement keyboard shortcuts outside the editor
- Pugjs - Used to create a dynamic html pages
- Socket.io - Used for executor server connection
- Browsersync - Used to enable the live reload on the browser
- Gulp - Used to automate and enhance the workflow with its plugins:
- gulp-nodemon - Used to monitor for any changes in the source files and automatically restart the server
- gulp-babel - Used to used to convert ECMAScript 2015+ code into a backwards compatible version of JavaScript
- gulp-clean - Used to remove files and folders
- gulp-uglify-es - Used to minify JS files
- gulp-autoprefixer - Used to add CSS prefix
- gulp-csso - Used to minify CSS files
- gulp-imagemin - Used to minify PNG, JPEG, GIF and SVG images
Versioning
We use Semantic Versioning for versioning. For the versions available, see the releases on this repository.
Credits
- Stefano Germano (Founder/Maintainer)
- Eliana Palermiti
- Rocco Palermiti
- Alexander Karaulshchikov
- Giorgio Andronico
- Francesco Calimeri (Scientific Supervisor)
From the Department of Mathematics and Computer Science of the University of Calabria
License
This project is licensed under the MIT License