Easy to setup, simple EMS system, with intuitive and quick to setup custom forms, tables, permission system, app settings & API to integrate with your existing tools.
✅ Simple and quick setup (<15 minutes) - See Setup section for instructions
✅ Built with Firebase (cost scales with usage, perfect for small companies)
✅ Customizable fields (choose from Text, Number, Date and Checkbox, Required / Optional)
✅ Choose which fields to show in table view
✅ Permission system (read, write, admin roles)
[ ] Extensible via API, read and write endpoints (setup via Admin Panel)
[ ] Manage API Access to specific fields, for specific keys
[ ] Render Drawer based on permissions of the user
[ ] Fields with custom JS execution
[ ] Data Export
[ ] Historical Changes
- Create new Firebase Project
- Upgrade your project to Blaze Plan (Pay as you go)
- Enable Google as a sign-in method in the Firebase console:
- In the Firebase console, open the Auth section.
- On the Sign in method tab, enable the Google sign-in method and click Save.
- Enable Firestore (Production Rules)
- Add a new Web application to your project
- Clone this repo and open it in the editor of your choice
- Replace
firebaseConfig.json
with config generated by Firebase. - Replace value of
default
inside.firebaserc
with your new Project ID - Run
npm run deploy
in the home directory of the project.- This will update your Firebase Security Rules, upload Functions, build the web app and deploy it to Firebase Hosting
- Go to Firebase Console and ensure that everything has been deployed correctly from step #9
- Go to Hosting section of Firebase Console, and select one of the two deploy (default) URLs.
- After navigating to the default deploy URL, click Login in the top right corner
- As the first user visiting the app, you'll be asked to enter Owner email (superadmin, only way to strip permissions is directly in the database), this will default to your email, and it should stay that way if you want to complete this setup.
(If you have entered someone else's email, please ask them to sign in after clicking
Create
button, and continue from step #3) You can also enter company name, and logo URL that will be reflected in the header of the page - don't worry you can always change this later! - Select "Global Settings" from the Drawer menu on the left, and navigate to the EMS tab. Check the
Enabled
checkbox at the top, and click onSave
. After refreshing the page you should be able to see EMS option in the left menu. - You can add new fields by clicking the
Add
button next to "Fields", this will create a new row.- each row starts with the
Field Name
, andField ID
in parenthases.Field ID
is derived from theField Name
and should always be unique. - you can further select data type based on the options inside the Select menu.
- Selecting
Required
will add required flag to the input fields when creating / editing profile - Selecting
Table Field
will expose the field in the table, visible in the EMS section of the app.
- each row starts with the
- Below the field rows, you can edit permissions of users to access the EMS section. By default, each user has access to their own profile, assuming their sign in (Google Auth)
Email
is identical to the one on their profile. Adding users in this table will give them permissions to either read or write any EMS profile, or with Admin access, also configure the App. - Always save your changes using the
Save
button in the top right corner. - API (TBA)
There are two fields that are required for each profile, User ID
that can't be set by anyone but the profile owner & Email
, referring to the email they use to authenticate with the app. These fields cannot be removed, as they tie to core functionality of the app, if editing data manually this is heavily discouraged, ensure to not remove these fields.
User ID
is further represented as Link Account
button, allowing user one time action, to link their Firebase Authentication, directly with their EMS profile, allowing you to read their Firebase UUID
via the API.