Skip to content

AFrayde01/proflow-process-manager

Repository files navigation

ProFlow - Internal Process Manager

ProFlow is a comprehensive internal tool designed for organizations to create, manage, and visualize business processes. It features version control and role-based access.

Preview.mp4

🚀 Features

  • Process Modeling: Visual diagram editor to create steps, decisions, and connections.
  • Version Control: Draft and Published states with version history.
  • Role-Based Access Control (RBAC):
    • Admins: Full system access, user management, and configuration.
    • Editors: Create and edit processes and catalogs.
    • Viewers: Read-only access to published processes.
  • Catalogs Management: Centralized management for Departments, Roles, and Process Categories.
  • Authentication: Support for Google Sign-In and Email/Password authentication via Firebase.
  • Custom Branding: Configurable company logo, colors, and legal text.

🛠️ Tech Stack

  • Frontend: React 19, TypeScript, Vite
  • Styling: Tailwind CSS, Lucide React (Icons)
  • Backend / DB: Firebase v12 (Auth, Firestore)

📋 Prerequisites

  1. Node.js: v18 or higher.
  2. Firebase Project: A project created in the Firebase Console.

⚙️ Setup & Configuration

1. Clone & Install

git clone <repository-url>
cd proflow-process-manager
npm install

2. Firebase Configuration

The application supports separate configurations for Development and Production.

  1. Create a Firebase project.
  2. Enable Authentication (Google Provider and Email/Password Provider).
  3. Enable Firestore Database (Create in test mode or set appropriate rules).
  4. Copy your web app configuration from Project Settings.
  5. Open firebaseParams.ts and paste your configuration into devConfig (and prodConfig for deployment).

3. Service Account (For Admin Scripts)

To run initialization scripts (like creating the first Admin user) locally:

  1. Go to Firebase Console > Project Settings > Service Accounts.
  2. Click Generate new private key.
  3. Option A (File): Save the downloaded file as service-account.json in the root directory of this project.
  4. Option B (Env): Alternatively, you can set the SERVICE_ACCOUNT_JSON environment variable with the contents of the JSON file (useful for CI/CD).

🏃‍♂️ Running the App

Development Mode

npm start

Runs the app in development mode.

  • Note: If firebaseParams.ts is empty or invalid, the app will automatically fall back to Mock Mode, using in-memory data for testing.

Database Initialization

To set up the database with initial schemas and create the first Admin user:

Prerequisites:

  1. You must have created/provisioned the Cloud Firestore database in the Firebase Console before running this script.
  2. You must have your credentials service configured on the root (service-account.json) or have the SERVICE_ACCOUNT_JSON environment variable loaded with the JSON content.
npm run db:init -- --email=your-email@example.com --samples
  • -- : This separator is required when using npm run to pass arguments to the underlying script.
  • --email: Sets this email as the system ADMIN.
  • --samples: (Optional) Populates the DB with sample departments, roles, and a process.

📚 User Guide

Login

  • Google Login: Standard popup authentication.
  • Email/Password: Requires the user to be pre-created by an Admin or through the signup process (if enabled).

Dashboard

The central hub showing all processes.

  • Filters: Filter by category using the top bar.
  • Drafts: Only Editors and Admins can see Draft versions.
  • Delete Drafts: Orphaned drafts (drafts with no published history) can be deleted directly from the dashboard card.

Editor

  • Add Node: Click the "+" button in the top left.
  • Connect: Hold Shift + Click a node to start a connection, then click the target node.
  • Edit Node: Click a node to open the side panel to edit title, description, and role assignment.
  • Versions: Use the "Commit" button to save a version. You can publish drafts to make them visible to Viewers.

Catalogs

Manage reusable data entities.

  • Departments: Organizational units (e.g., IT, HR).
  • Roles: Job titles linked to departments (e.g., HR Manager).
  • Categories: Grouping for processes (e.g., Onboarding, Security).

Protection Rules:

  • Categories: Cannot be deleted if used by any Process.
  • Roles: Cannot be deleted if assigned to any Process Node.
  • Departments: Cannot be deleted if they contain Roles.

📦 Backup & Restore

Scripts are included to backup Firestore data to a local JSON file.

  • Export Data:

    npm run db:export

    Saves entire database to backup-data.json.

  • Import Data:

    npm run db:import

    Restores data from backup-data.json.

📝 License

MIT License. Copyright (c) 2026 Abraham Fraydé.

About

ProFlow is a modern, web-based Internal Process Management System built with React 19, TypeScript, and Firebase. It is designed to help organizations document, visualize, and standardize their internal Standard Operating Procedures (SOPs).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors