Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/selfup/rejs
File based database for IoT! Built for developer freedom.
https://github.com/selfup/rejs
Last synced: 3 months ago
JSON representation
File based database for IoT! Built for developer freedom.
- Host: GitHub
- URL: https://github.com/selfup/rejs
- Owner: selfup
- License: other
- Created: 2016-04-09T04:35:29.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-10T17:32:37.000Z (almost 2 years ago)
- Last Synced: 2024-10-10T04:29:23.687Z (3 months ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/selfup-rejs
- Size: 313 KB
- Stars: 10
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Selfup - Rejs
### File based database! Built for developer freedom. Geared for NodeBots/IoT
#### Event Based Key Value Store:
Made to store hardware data on the filesystem!
**Installation:**
`npm install selfup-rejs --save`
**Warning**
This was built with node v14.4.0
**Ensure your data is safe and not in version control:**
`echo 'selfup-rejs/*' >> .gitignore`
**Load package:**
```js
const Rejs = require('selfup-rejs');
const rejs = new Rejs();
```**Official DOCS:**
Documentation: [right here!](https://github.com/selfup/rejs/blob/master/DOCS.md)
### Example Use Case Repos:
**Raspberry Pi**
`NodeBots/JohnnyFive` and logging event data: [Repo](https://github.com/selfup/rpi-rejs)
**Arduino**
`NodeBots/JohnnyFive` and logging event data: [Repo](https://github.com/selfup/arduino-rejs)
### Video on how to use selfup-rejs:
[Link to Youtube Vid](https://www.youtube.com/watch?v=dVTePMkw9EE&feature=youtu.be&a)
### How to Use:
Using RESTful verbs to help explain from a high level what is happening.
This is not a server.
This is a database that writes and reads files on the server.
**Verbs/Methods**
- (POST) Create a table: `rejs.createTable('tablename')`
- (POST) Create Multiple Tables: `rejs.createTables('one', 'two', 'three')`
- (POST) Add data to table: `rejs.newData('tablename', dataObject)`
- **(POST) Add data to Multiple Tables:**```js
rejs.newDatas(
['firstTable', { test: 'data' }],
['secondTable', { test: 'data' }],
['thirdTable', { test: 'data' }],
);
```- (DELETE) Delete data by ID in a table: `rejs.deleteById('tablename', '2')`
- (DELETE) Drop a table: `rejs.dropTable('tablename')`
- (DELETE) Multi-Table Drop: `rejs.dropTables('firstTable', 'secondTable')`
- (PUT) Replace/Overwrite a table: `rejs.updateTable('tablename', dataObject)`
- **(PUT) Replace/Overwrite Multiple tables:**```js
rejs.updateTables(
['firstTable', { test: 'new data' }],
['secondTable', { test: 'new data' }],
['thirdTable', { test: 'new data' }],
);
```- (GET) Table Object Query: `rejs.getTable('tablename')`
- (GET) Multi-Table Query: `rejs.getTables('table', 'table2', 'table3')`
- (GET) Find by ID: `rejs.findId('tablename', 'id')`
- (GET) Where/Select: `rejs.where('tablename', 'any value in a flat object')`### Potential use Cases:
#### JohnnyFive/NodeBots/IoT
- Store temperature data over time
- Store how many times a door has been opened
- Store telemetry data
- Store Data on a Raspberry Pi
- Store Data on a server hooked up to an Arduino
- Store Data on an Arduino Yun/BeagleBone/etc...
- Many possibilities for IoT#### Electron OSX/Windows Apps
- Store file paths to load files needed on load
- Store small notes for a twitter like notes app
- Store image url's
- Store any data that you need to persist from app shutdown back to open#### VPS
- Use it as a small DB for a low volume production app
- Use it to get quickly set up, and then move on to Mongo/Postgres once your app is mature and MVP is proven### Test Coverage
#### To get 100% coverage:
If the `selfup-rejs` folder is in your directory:
```sh
npm install
rm -rf selfup-rejs
```Then you can run:
`./node_modules/.bin/istanbul cover _mocha`
Now the selfup-rejs folder will be in your directory again!
#### To run tests without coverage:
`npm test`