All Projects → programaker-project → Programaker-Core

programaker-project / Programaker-Core

Licence: Apache-2.0 license
Core services for PrograMaker.com and the PrograMaker project.

Programming Languages

erlang
1774 projects
typescript
32286 projects
HTML
75241 projects
SCSS
7915 projects
python
139335 projects - #7 most used programming language
CSS
56736 projects

What is Programaker?

Programaker is the project behind PrograMaker.com. It has the goal of enabling anyone to build anything, without the need for code, servers or technical expertise.

Programaker's programs are not run on your computer. Thus, it is especially suited for simple tasks that don't require a lot of computing power but that must run contiguously, for example:

  • Chat bots
  • Connections between services
  • Scheduled tasks

Programaker can be programmed using MIT's Scratch language (more in progress). Through it, and Programaker's distributed computer, the steps to create a new program are:

  • Open a new program in your web browser
  • Configure the program steps
  • Press run

(We are looking for other environments to learn from, tell us about your favourite visual automation tools!)

Bridges

Programaker bridges are the components that connect the Programaker platform with external services and devices. This is a list of some bridges in no particular order.

Name Maturity Language Description License
Hue lights [repo] Usable/Experimental Python Bridge for Phillips Hue lights Apache License 2.0
AEMET [repo] Usable/Experimental Python Bridge for Spanish Weather Agency predictions. Apache License 2.0
Meteogalicia [repo] Usable/Experimental Python Bridge for Galician weather predictions. Apache License 2.0
Twitter bridge [repo] In development Python Bridge to read data from Twitter. Apache License 2.0
Toggl bridge [repo] Usable/Experimental Python Bridge to keep track of time on Toggl platform. Apache License 2.0
Telegram bridge [repo] Usable/Experimental Python Bridge to control bots on the Telegram IM network. Apache License 2.0
Unix bridge [repo] Experimental Python/Bash Library to write bridges using Unix tools (like bash scripts). Apache License 2.0
Matrix bridge [repo] Usable/Experimental Python Bridge for the Matrix IM network. Apache License 2.0
XMPP bridge [repo] Experimental Python Bridge for the XMPP/Jabber IM network. Apache License 2.0
Gitlab bridge [repo] Experimental Python Bridge for the Gitlab plaform. Apache License 2.0
InfluxDB bridge [repo] Usable/Experimental Python Bridge for the InfluxDB time series database. Apache License 2.0

Setup

For development

Directly on the development machine

The services can be direcly run on a host machine. This is the recommended way of developing the core as it can rely on angular capabilities for reloading.

Frontend

An updated node.js version is required for this. After getting it do the following:

  • Go to the frontend directory: cd frontend
  • Install dependencies: npm install .
  • Download necessary css and font type resources using the Makefile: make
  • Start the development server: npm run start

After this, the frontend can be accessed on http://localhost:4200

Backend

An updated version of erlang and rebar3 are needed for this. After getting them do the following:

  • Go to the backend directory: cd backend
  • Get dependencies: sh ./get-deps.sh
  • Run a rebar shell (which includes a server): rebar3 shell

After this, the backend is available on http://localhost:8888 (although the operation is done normaly through the frontend).

Docker compose

A docker-compose.yml script exists to setup a base deployment of Programaker. This can be used to do some tests or as a help to develop bridges. But keep in mind that a deployment launched with this script has no redundancy and the data is not saved between executions.

  • To launch the services, run docker-compose up --build.
  • To launch the services on the background, run docker-compose up -d --build. Same command to update.
  • To stop the services, run docker-compose down.

After this, the service can be accessed on http://localhost:8080 .

Architecture overview

Image of the architecture overview

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].