1. Scheduled Plant Watering System

SYSTEM FLOW

A smart watering system for plants is controlled using Rayjas as a manager run onboard a Raspberry PI. Rayjas is configured with time schedules via cron expressions. When the time arrives the scheduler within Rayjas triggers the event. Rayjas additionally checks a pre-configured third-party weather service to ensure that it is ok to water plants in the current weather, before operating the water pump. Once the pump is turned it will send water to the plants till its max run time is reached and the local program on the device stops the pump.
Each operation of the pump causes the pump operator device to post an HTTP request back to Rayjas, which in turn processes the HTTP call to send out a notification to a smartphone using the Telegram API.
2. Home Automation Grid

SYSTEM FLOW

lorem ipsum
3. REST API Wrapper

SYSTEM FLOW

Often we use a lot of API services from across the web in our development. We want the API calls to be well protected and perhaps offer different levels of access control as well. But unfortunately not every API offering conforms to this standard and you have to look for workarounds and custom security designs.
Rayjas simplifies it by offering the possibility of providing a decorative API wrapper for the original API. The way this works is that Rayjas becomes a consumer of the original API and exposes an alternate API endpoint on a different port of choice. This new API endpoint can be decorated with its own authentication scheme, access level protection, IP filtering and much more. You can even disable some api calls of the original API.
4. Monitor Server Statistics

SYSTEM FLOW

Monitoring system statistics is the most common and basic task of system administration. Where there are many open-source/free tools out there that can do this, it is another task that Rayjas can easily handle. There are many ways through which Rayjas can be integrated with operating system services. It can use custom libraries to make low-level system calls or just simply use the shell to execute commands and get responses. Rayjas can make use of its system module to grab system statistics periodically and then make the same available over custom HTTP API calls or even push it out proactively over socket-based protocols in real-time..
Other simple yet useful automation possibilities using Rayjas

- Making an HTTP API call at a scheduled time as a one time / recurring task
- Executing a shell command/script at a scheduled time as a one time / recurring task
- Backup a log file automatically at the scheduled time as a one time / recurring task
- Receiving an API call from a remote client over HTTP/HTTP(S)
- Push messaging to smartphone/desktop through telegram API integration
- Live log tailing & recording to disk
- Integration with numerous cloud APIs (custom development as needed)
- Custom module development to meet (almost) any need.
And a lot more…