UNPKG

@ztimson/momentum

Version:

Client library for momentum

149 lines (123 loc) 6.63 kB
<!-- Header --> <div id="top" align="center"> <br /> <!-- Logo --> <img src="server/public/favicon.png" alt="Logo" width="200" height="200"> <!-- Title --> ### Momentum <!-- Description --> Enterprise Record Management <!-- Repo badges --> [![Version](https://img.shields.io/badge/dynamic/json.svg?label=Version&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/momentum/tags%3Ftoken%3D35a3bf73a216782a7435f86117412bcb9784b716&query=$[0].name)](https://git.zakscode.com/ztimson/momentum/tags) [![Pull Requests](https://img.shields.io/badge/dynamic/json.svg?label=Pull%20Requests&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/momentum%3Ftoken%3D35a3bf73a216782a7435f86117412bcb9784b716&query=open_pr_counter)](https://git.zakscode.com/ztimson/momentum/pulls) [![Issues](https://img.shields.io/badge/dynamic/json.svg?label=Issues&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/momentum%3Ftoken%3D35a3bf73a216782a7435f86117412bcb9784b716&query=open_issues_count)](https://git.zakscode.com/ztimson/momentum/issues) <!-- Links --> --- <div> <a href="https://git.zakscode.com/ztimson/momentum/wiki" target="_blank">Documentation</a> • <a href="https://git.zakscode.com/ztimson/momentum/releases" target="_blank">Release Notes</a> • <a href="https://git.zakscode.com/ztimson/momentum/issues/new?template=.github%2fissue_template%2fbug.md" target="_blank">Report a Bug</a> • <a href="https://git.zakscode.com/ztimson/momentum/issues/new?template=.github%2fissue_template%2fenhancement.md" target="_blank">Request a Feature</a> </div> --- </div> ## Table of Contents - [Momentum](#top) - [About](#about) - [Built With](#built-with) - [Setup](#setup) - [Production](#production) - [Development](#development) - [License](#license) ## About Momentum is a self-hosted enterprise resource planning tool. What does that mean? Think something similar to [Firebase](https://firebase.google.com) but you are in full control of your data & services. It was developed as a generic backend to add functionality to single page applications such as angular, react, svelte or vue. Momentum comes with a client library to make integration extremely easy. Momentum also comes with a management interface to allow easy administration of momentum without having to build anything. Features include: - Actions - Write server side code to create custom functionality - Writen with javascript & the momentum client library to minimize the learning curve - Custom library and can be installed & accessed from actions using Docker & NPM - Trigger actions including CRONs, RESTFUL requests & system events - Extremely fast - Authentication - Manage users with custom values - Manage groups with cascading permissions & custom values - Token management for 3rd party applications - Full permission system which supports custom values - Account validation & reset emails - Optional public registration form - OAuth support for custom applications - Custom password strength rules - Two-Factor Authentication - Data - Edit database like an Excel table - Create custom forms & reports to interact with data - Interact with data through the REST API - Granular collection & document level permissions - Automatic metadata tracking - Easy import/export to CSV, Excel & JSON - Logs - Save & view server logs through the UI for easy debugging - Submit client logs to momentum to aid in remote debugging - Client logs come with device information such as user agent & screen size - Storage - Storage anything with momentum storage - Built in filebrowser - Upload & download files with the API - Full file permissions - Automatic metadata tracking - Static File Server - Host your single page application using Momentum for easy hosting - Configurable routing - Settings - Full theming & white label support - Manage the server through variables which can be changed at runtime - Create & use custom variables for your application - Miscellaneous - Automatically turn website into Progressive Web App - Caching & offline support built into the client library - Socket support to keep all clients in sync automatically - Generate PDFs from templates, HTML or links - SMTP support to send emails from templates - Twilio support to manage texts & calls - Stripe support to handle payments & subscriptions ### Built With [![Docker](https://img.shields.io/badge/Docker-384d54?style=for-the-badge&logo=docker)](https://docker.com/) [![MongoDB](https://img.shields.io/badge/mongodb-000000?style=for-the-badge&logo=mongodb)](https://www.mongodb.com/) [![Node](https://img.shields.io/badge/Node.js-000000?style=for-the-badge&logo=nodedotjs)](https://nodejs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://typescriptlang.org/) ## Setup <details> <summary> <h3 id="production" style="display: inline">Production</h3> </summary> #### Prerequisites - [Docker](https://docs.docker.com/install/) #### Instructions 1. _Optional: Use momentum to host your [static site](https://git.zakscode.com/ztimson/momentum/wiki/Static)_ 2. Download the [docker-compose](https://git.zakscode.com/ztimson/momentum/src/branch/develop/docker-compose.yml) file: `curl -o momentum.yaml https://git.zakscode.com/ztimson/momentum/raw/branch/develop/docker-compose.yml` 3. Configure the [Environment Variables](https://git.zakscode.com/ztimson/momentum/wiki/Environment-Variables) inside the docker-compose 4. Start the server with: `docker-compose up -f momentum.yaml` 5. Open http://localhost:80 - Default login: `admin/admin` - Configure [System Variables](https://git.zakscode.com/ztimson/momentum/wiki/System-Variables) </details> <details> <summary> <h3 id="development" style="display: inline">Development</h3> </summary> #### Prerequisites - [Docker](https://docs.docker.com/install/) - [Node.js](https://nodejs.org/en/download) #### Instructions 1. Install the dependencies: `npm install` 2. Start MongoDB: `docker-compose up db` 3. Start the dev server: `npm run start` 4. Open http://localhost:3000 - Default login: `admin/admin` - Configure [System Variables](https://git.zakscode.com/ztimson/momentum/wiki/System-Variables) </details> ## License Copyright © 2024 Zakary Timson | All Rights Reserved See the [license](./LICENSE) for more information.