Skip to content

EngrityGit/engrity_hr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HRM Pro v4 — Human Resource Management System

Full-featured HR CRM for managing 3,500–10,000+ inspection resources. React + Vite · Supabase (PostgreSQL) · Recharts · Lucide Icons


Quick Start (no database required)

cd hrm-pro
npm install
npm run dev
# Opens at http://localhost:3000 — uses localStorage automatically

Login:

Role Email Password
Admin admin@hrm.com Admin@123
Manager manager@hrm.com Manager@123
Recruiter recruiter@hrm.com Recruit@123
Viewer viewer@hrm.com Viewer@123

Supabase Database Setup

Step 1 — Create Project

  1. supabase.com → New Project (choose Canada/US region)

Step 2 — Run Schema

  1. Supabase Dashboard → SQL Editor → New Query
  2. Paste contents of supabase/schema.sqlRun

Step 3 — Get Credentials

  1. Settings → API → copy Project URL and anon public key

Step 4 — Configure .env

cp .env.example .env
# Fill in:
VITE_SUPABASE_URL=https://yourproject.supabase.co
VITE_SUPABASE_ANON_KEY=eyJ...

The sidebar badge shows Cloud (green) or Local (amber).


AI Search Setup (Optional)

# Add to .env:
VITE_ANTHROPIC_KEY=sk-ant-api03-...

Without the key, the smart algorithm still works well for most queries.


Importing from Google Sheets

  1. Google Sheets → File → Download → CSV
  2. Open CSV in Notepad → Ctrl+A → Ctrl+C
  3. HRM Pro → Candidates → Import → Paste Data
  4. Preview → Import

What's auto-mapped: All 107 columns from the Engrity Database, including:

  • X, x, yes, Yestrue for certifications
  • Priority 1.0/2.0/3.01/2/3
  • Multi-line headers (NACE\n1) handled correctly
  • Chunked at 500 rows — handles 10,000+ rows with progress bar

What's New in v4

Advanced Filtering

  • Multi-select filter chips — select multiple screening statuses, priorities, or availability values at once
  • Filter chips show counts, can be cleared individually or all at once
  • Cert filter buttons (CWB 1/2/3, API 510/570, etc.) below main filters
  • Column preferences saved to localStorage

Technical Screening — Full Question Scripts

Four complete discipline scripts embedded:

  • QC Inspector — 15 sections covering ITP, drawings, codes, material receiving, WPS/PQR, NDT, hydro testing, flange inspection, torquing, AB83/81/40, turnover, soft skills
  • E&I Inspector — 14 questions covering cables, terminations, drawings, torquing, PPE, NCR, RFI, ITP
  • Coating Inspector — SSPC standards, holiday testing, adhesion/hardness tests, documentation
  • NDT (Magnetic Particle) — 10 multiple-choice questions with correct answers marked

Scripts include hints, correct answers, and point values — visible during screening as reference.

Certifications & Safety Tickets — Expiry Dates

Every certification now has a paired expiry date field:

  • Candidate Detail shows expiry status: Expired (red), Expiring Soon (amber, within 90 days), Valid (green)
  • Alert banner at top of profile when any cert is expired or expiring
  • Safety Tickets renamed from Trades, with full names:
    • CSTS 2020/09, WHMIS 2015, H2S Alive, Fall Protection, Confined Space, Standard First Aid, Common Safety Orientation

Edit Modal — Vertical Sidebar Navigation

  • No horizontal scroll — use the left sidebar to jump between 15 sections
  • Cert/Safety sections show certifications as checkboxes with inline expiry date pickers
  • Modern date pickers on all date fields
  • Position field is a smart datalist (dropdown + free type)

Candidate Profile — Tabbed with Collapsible Sections

Tabs: Overview · Certifications · Safety Tickets · Trade Ratings · Full Details · Documents

  • Overview: side-by-side Status and Basic Info
  • Certifications: list all 23 certs with expiry status per cert
  • Trade Ratings: visual bar charts per category, auto-calculated average
  • Documents: resume URL, incorporation doc, direct deposit, WCB clearance

Overall Skill Rating — Auto-Calculated

Automatically computed as the average of all non-blank trade ratings (piping, pressure vessels, boiler, pipeline, structural, piles, furnace, tank, computer). Blank fields are excluded from the average.

Priority 3 = Red (as requested)

P1 = Red · P2 = Amber · P3 = Red

Position Field

Dropdown with 19 preset options + free-text typing. Admin can add/edit/delete options in Admin Panel → Positions.

Soft Delete + Recovery

Deleted candidates are marked deleted=true — not permanently removed. Recovery coming in next update.

Admin Panel — 4 Tabs

  1. Users — Add/edit/disable users, permissions matrix
  2. Positions — Add/edit/delete position dropdown options
  3. Database — Table relationship diagram (SVG), schema stats, SQL quick reference
  4. Integrations — BambooHR, Workday, SAP SuccessFactors, Custom API/Webhook with configuration fields

BambooHR Integration

Configure your API key and subdomain in Admin → Integrations to pull:

  • Employee directory (name, email, phone, job title)
  • Job tables and payroll summaries
  • Time-off records
  • Custom fields and documents

Query Builder — Fixed

Now correctly handles both sync (localStorage) and async (Supabase) data sources.


Deployment

# Vercel
npx vercel --prod
# Set env vars: VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY, VITE_ANTHROPIC_KEY

# Build for any host
npm run build
# Serve /dist as static files — nginx: try_files $uri $uri/ /index.html;

Adding Custom Columns

Step 1 — Add to Supabase:

ALTER TABLE public.candidates ADD COLUMN IF NOT EXISTS my_field text;

Step 2 — Add to src/contexts/DataContext.jsx:

myField: { label: 'My Field Label', type: 'text', group: 'basic' },

Step 3 — Add to src/lib/supabase.js CSV_HEADER_MAP if importing from CSV.


Tech Stack

Layer Technology
Frontend React 18 + Vite 5
Routing React Router v6
Database Supabase (PostgreSQL)
Local mode localStorage (auto)
Charts Recharts
Icons Lucide React
AI Search Anthropic Claude API
Typography DM Sans + DM Mono

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors