OBS Overlay Database System - Documentation

← Back to Admin Panel

Complete Guide

Getting Started

This system allows you to create custom NoSQL databases and bind their data to HTML elements using special attributes. Perfect for OBS overlays and dynamic web content.

Installation

  1. Install dependencies: npm install
  2. Start the server: npm start
  3. Access the admin panel at http://localhost:3000

Creating Databases

Navigate to the "Create Database" tab to create a new database:

  1. Enter a database name (e.g., "name", "players", "scores")
  2. Add fields by clicking "+ Add Field" (e.g., "name", "email", "description")
  3. Click "Create Database"
Example: Create a database called "name" with fields: name, email, description

Managing Data

In the "Manage Databases" tab, you'll see all your databases as tabs:

Adding Data

Editing Data

  1. Click the "Edit" button on any row
  2. A popup will appear showing all columns
  3. Click on the column you want to edit
  4. Enter the new value
  5. Click "Save"

Searching

Each database has a search bar at the top:

Selection System

Each row has a checkbox. Only one item can be selected at a time per database:

Sub-Databases (Relational)

Create filtered views of your main databases:

  1. Click "Create Sub-DB" on a parent database
  2. Enter a name for the sub-database
  3. Select a filter field, operator, and value
  4. The sub-database will show only items matching the criteria
Example: Create a sub-database of "name" that filters where name equals "miguel"

Note: Sub-databases are read-only views. Updates to the parent database automatically reflect in sub-databases.

Using in HTML

To use database data in your web pages:

1. Include the Script

<script src="/localserver.js"></script>

2. Create Database Container

<div data-db="database-name">
    <p data-db-item="field-name">Text</p>
    <p data-db-item="email">Text</p>
</div>

3. How It Works

Complete Example

<!DOCTYPE html>
<html>
<head>
    <title>My Overlay</title>
</head>
<body>
    <script src="/localserver.js"></script>
    
    <div data-db="name">
        <h2>Current Selection</h2>
        <p data-db-item="name">Loading...</p>
        <p data-db-item="email">Loading...</p>
        <p data-db-item="description">Loading...</p>
    </div>
</body>
</html>

API Endpoints

For developers who want to integrate with the API:

Method Endpoint Description
GET /api/databases List all databases
GET /api/database/:name Get database structure and data
POST /api/database Create a new database
POST /api/database/:name/data Add data to database
PUT /api/database/:name/data/:id Update data item
DELETE /api/database/:name/data/:id Delete data item
POST /api/database/:name/select/:id Select an item
GET /api/database/:name/selected Get selected item (used by HTML binding)

Features

Troubleshooting

HTML not updating?

Server connection lost?

The system automatically uses cached data if the server is unavailable. Data is cached for 5 minutes.

Sub-database not showing data?