'Sim'ulaton 'Pl'atform Creator

'SimPL' is a Content Management System for Simulation Platforms.

The objectives of SimPL are :

- To provide researcher-friendly(not developer-friendly) development environments
- To spread researcher's precious knowledge(include code, know-how and pre/post processing skills
- To generate research bigdata for diverse field of research

In SimPL,

- You can create your own simulation platform customized for you with functions what you want .
- You can do modeling, calculation, and analysis in one platform.
- Your platform development process will be very simple.
- You can easily import platforms shared by others and create new platforms or add functions to your platform.

There are 2 key components of SimPL

1) Pages
"Page" is a web page which consists of standard web elements(images, texts, links, input form...) and SimPL web components.
2) Plugins
"Plugin" is a small program which connects back-end elements(such as solver, linux server,...) to Pages.
Currently, Plugins are written in Python(2.7.3) and we're planing to give more options to SimPL Creators.

Other components

1) Preset
- User's Info
[Your-url]/preset/myInfo
- Javascript Functions
kCms.callPlugin("pluginAlias",data={"input data"}, callback=function(ret){...});
kCms.uploadFile("repos for(web or server)", files, callback=function(ret){...});
kCms.downloadFile("repos for(web or server)", ["list of the alias"]);

2) Jobs
Job is the place to store something in SimPL. It is structured to store any data. You can store and load data by the plugin built-in functions saveJobs and getJobs.
- Job table structure

Column Type Default Remarks
id unsigned int(10) not nullable(auto-increment)
parent int(11) nullable
project int(11) nullable
owner int(11) nullable
type varchar(255) nullable
qinfo longtext nullable
jobdir varchar(255) nullable
status varchar(32) nullable
pluginId int(11) nullable
jobBefore longtext nullable
jobNext longtext nullable
input longtext nullable
output longtext nullable
name text nullable
created_at timestamp nullable
updated_at timestamp nullable

3) Repository
- You can upload files for "web" and "server".
- In "Repository for Web", you can usually upload a picture files and include them your page like
< img src="repo/alias of file">
- Files to be used by the plugin are uploaded to "Repository for Server". They can be read with the plugin built-in function getRepo.