@ztimson/momentum
Version:
Client library for momentum
149 lines (123 loc) • 6.63 kB
Markdown
<!-- 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 -->
[](https://git.zakscode.com/ztimson/momentum/tags)
[](https://git.zakscode.com/ztimson/momentum/pulls)
[](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
[](https://docker.com/)
[](https://www.mongodb.com/)
[](https://nodejs.org/)
[](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.