Git Product home page Git Product logo

ems's Introduction

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.

ems's People

Contributors

mdichtler avatar

Stargazers

Carizmian avatar Andrej Horník avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.