Skip to content

arkenrealms/node

Repository files navigation




Arken Node is a free and open source Node library

Build Status Github Tag Discord


Introduction

Welcome to Arken Node, designed for the Arken Realms open initiative. Arken Node uses TypeScript.

Install

Clone the repo and install dependencies:

git clone --depth 1 --branch main https://github.com/arkenrealms/node.git your-project-name
cd your-project-name
rush update

Having issues installing? See our debugging guide

Starting Development

Start the app in the dev environment:

rushx dev

Docs

See our docs and guides here

Model Structure and Entity Relationships

In our framework, every model extends from the base class Entity, which includes the mandatory field applicationId. This field is required for all models except for Omniverse, Metaverse, and Application.

Hierarchical Model Relationships

  • Omniverse: Acts as the highest-level entity that encompasses multiple Metaverses.
  • Metaverse: Each Metaverse can contain multiple Applications.
  • Application: When enabled, an Application integrates all its associated models into the corresponding Metaverse.

All models linked to a specific Application must have an applicationId to maintain a clear association within the Metaverse structure.

Ownership and Permission

Each Entity in the system must have an owner, represented as a Profile of an Account. An Account can own multiple Profiles, allowing for a flexible user representation. This structure ensures that every change made to an Entity can be tracked back to a specific Profile and Account.

Collaborative and Social Framework

Our framework is designed to encourage global collaboration and sharing within different Metaverses:

  • Contributions: Anyone can create content for another user's Metaverse. If the Metaverse owner approves, this content can be included in their Metaverse.
  • Authority Types: Approval can be managed directly by the Metaverse owner or be automated through community votes, depending on the Metaverse's authority type.

Future Expansion with Node Schema

Once the Node schema is fully implemented, it will enable any model to connect with any other model without the need for additional schemas. This flexibility will allow entities such as Products, Games, NPCs, etc., to have direct relationships with models like Rating through Node. This will streamline community-driven features such as voting and reduce the amount of code required to manage these relationships.

Quick Links

License

MIT