Giter Club home page Giter Club logo

scheduler's Introduction

Build Status

scheduleR

scheduleR serves as an easy web interface for scheduling (simple) R scripts up to generating full-fledged Rmarkdown reports. Logging, error/success notifications and mailing of reports is supported.

By providing easy access to the scheduling of R scripts and Rmarkdown files, scheduleR tries to make automated data analytics and reporting as easy as possible.

Requirements

Minimal dependencies:

Optional dependencies (necessary for generating Rmarkdown reports):

scheduleR's web interface is built using Node.js and tested under GNU/Linux and Windows. Feedback on Mac compatibility is appreciated.

Installation

First download the repository using the latest tarball / zip file and extract it or simply clone the repository:

git clone https://github.com/Bart6114/scheduleR.git

Next, run the following command to install dependencies.

npm install

Configuration

To configure scheduleR go to the directory containing the installation and edit the user.config.json file to your likings:

  • uploadDir path to upload your scripts to
  • RScriptExecutable how to call the Rscript executable (best to simply put Rscript on the path)
  • RstandardArguments standard arguments to add to Rscript (should be fine)
  • mailer.from the from address to use in notification/report mails
  • mailer.options settings for nodemailer to user
  • db.url the address of the mongodb server
  • db.suffix the name used to create a db on the mongodb server
  • port the port to serve scheduleR on

Running scheduleR

You can start scheduleR by running

npm start

You can then point your browser at the configured port & server address (default is http://localhost:3000).

User management

At the first start of scheduleR an initial signup option is available. After the initial signup new users can be invited (an account will be created for them).

Scheduling tasks

The list tasks view gives an overview of all the scheduled tasks. One can choose a specific task to get a detailed overview on run times and logs. The edit mode is also available via the detailed view.

Using new task one can schedule a new script:

  • name the name of the script
  • description a description of the script
  • script file upload the .R / .Rmd file
  • extra arguments potential extra arguments to call the script with
  • enabled should the task be enabled after saving
  • render with Rmarkdown will default to true for .Rmd files
  • Rmd output path where to copy the resulting report (optional)
  • Rmd mail message a message for the body of the report mail
  • mail report to addresses to the resulting report to (as attachment) - make sure to press enter after each address
  • schedule the desired schedule (see the cron manual
  • on success addresses to send successful execution notification to - make sure to press enter after each address
  • on error addresses to send unsuccesful execution notification to - make sure to press enter after each address

In the examples directory you can find a few example scripts to test scheduleR's functionality with.

Browser compatibility

Up to now only tested on a recent Chrome browser.

Issues, questions, feedback

Create a new issue at scheduleR's GitHub site or leave me a message at bartsmeets86 | at | gmail.com.

scheduler's People

Contributors

bart6114 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.