Skip to content
/ EMS Public

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.

License

Notifications You must be signed in to change notification settings

mdichtler/EMS

Repository files navigation

EMS (Employee Management System)

ko-fi

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.

Features

Deployed ✅:

✅ 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)

Development 🚧:

[ ] 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

Preview

Simple Dashboard

Simple Dashboard

Customizable fields

Customizable Fields

Customizable Employee Table

Customizable Employee Table

Easily Manage Permissions

Easily Manage Permissions

Setup 👩🏽‍💻

Firebase 🔥
  1. Create new Firebase Project
  2. Upgrade your project to Blaze Plan (Pay as you go)
  3. 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.
  4. Enable Firestore (Production Rules)
  5. Add a new Web application to your project
  6. Clone this repo and open it in the editor of your choice
  7. Replace firebaseConfig.json with config generated by Firebase.
  8. Replace value of default inside .firebaserc with your new Project ID
  9. 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
  10. Go to Firebase Console and ensure that everything has been deployed correctly from step #9
  11. Go to Hosting section of Firebase Console, and select one of the two deploy (default) URLs.
App Configuration ⚛️
  1. After navigating to the default deploy URL, click Login in the top right corner
  2. 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! Getting Started Screen
  3. 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 on Save. After refreshing the page you should be able to see EMS option in the left menu.
  4. 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, and Field ID in parenthases. Field ID is derived from the Field 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.
  5. 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.
  6. Always save your changes using the Save button in the top right corner.
  7. API (TBA) API Key Configuration
Final notes:

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.

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published