Skip to content

Kalpan2007/ECOFlow-Engineering-Change-Order-Version-Master-Data-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

49 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”„ ECOFlow

Engineering Change Order Version Master Data System

Streamline your product engineering workflows with intelligent ECO management, multi-stage approvals, and real-time collaboration.

Features โ€ข Installation โ€ข API โ€ข Deployment โ€ข Roadmap โ€ข Demo Video

Status Version License PRs Welcome TypeScript Build


๐Ÿ“‘ Table of Contents

๐ŸŽฏ Overview

ECOFlow is a comprehensive Engineering Change Order (ECO) Management System designed for manufacturing and product engineering teams. It provides a structured workflow for managing product changes, BOM modifications, and multi-stage approval processesโ€”all in one platform.

Why ECOFlow?

  • โšก Eliminate Manual Workflows: Automate ECO creation, submission, and approval tracking
  • ๐Ÿ”’ Role-Based Access Control: Granular permissions for Engineering, Approvers, Operations, and Admins
  • ๐Ÿ“Š Complete Audit Trail: Track every change with comprehensive audit logs
  • ๐Ÿ”„ Version Control: Manage product and BOM versions with automatic archiving
  • โšก Real-Time Collaboration: Live notifications and updates via Server-Sent Events

Who Is This For?

  • Manufacturing Teams managing product changes and BOMs
  • Engineering Departments coordinating design modifications
  • Quality Assurance Teams reviewing and approving changes
  • Operations Teams tracking production-ready versions

โœจ Features

Feature Description Status
๐Ÿ” Authentication & Authorization JWT-based authentication with role-based access control (RBAC) for ADMIN, ENGINEERING, APPROVER, and OPERATIONS roles โœ… Active
๐Ÿ“ฆ Product & BOM Management Create and manage products with multi-version support, BOM components, and operation sequences โœ… Active
๐Ÿ“ ECO Draft System Isolated draft storage for component and operation changes with ADDED/MODIFIED/REMOVED tracking โœ… Active
๐Ÿ”„ Multi-Stage Approval Workflow Configurable approval stages (Engineering Review โ†’ Manager โ†’ Operations โ†’ QA โ†’ Final) with auto-progression โœ… Active
๐Ÿ“‹ BOM Publish & Archive Transition BOMs from DRAFT โ†’ ACTIVE โ†’ ARCHIVED with validation checks โœ… Active
๐Ÿ”” Real-Time Notifications Server-Sent Events (SSE) for instant updates on ECO status changes and approval requests โœ… Active
๐Ÿ“Ž File Attachments Cloudinary integration for uploading and managing technical drawings, specifications, and documents โœ… Active
๐Ÿ“Š Comparison Views Side-by-side comparison of BOM versions showing component and operation differences โœ… Active
๐Ÿ“œ Comprehensive Audit Logs Track all CREATE, UPDATE, DELETE, APPROVE, REJECT actions with timestamps and user attribution โœ… Active
๐Ÿ“ˆ Dashboard & Analytics Visual overview of ECO status distribution, approval metrics, and recent activities โœ… Active
โš™๏ธ User & Role Management Admin panel for managing users, assigning roles, and handling role requests โœ… Active
๐Ÿ” Advanced Search & Filtering Filter ECOs, products, and BOMs by status, type, date range, and custom criteria โœ… Active

๐Ÿ› ๏ธ Tech Stack

Layer Technology Purpose
Frontend React 18 + TypeScript Type-safe component-based UI
Vite Lightning-fast build tool and dev server
Tailwind CSS Utility-first styling with custom design system
Framer Motion Smooth animations and transitions
Recharts Data visualization for analytics dashboard
Backend Node.js + Express RESTful API server
TypeScript Type safety across the entire backend
Prisma ORM Type-safe database client with migrations
Database PostgreSQL Relational database for structured data
Authentication JWT + bcrypt Secure token-based authentication
File Storage Cloudinary Cloud-based media management
Real-Time Server-Sent Events (SSE) Push notifications from server to client
Dev Tools Nodemon + ts-node Hot-reloading development environment
ESLint + Prettier Code quality and formatting

๐Ÿ—๏ธ Architecture

ECOFlow follows a three-tier architecture with clear separation of concerns:

  1. Presentation Layer (Frontend): React SPA with role-based UI components
  2. Application Layer (Backend): Express API with business logic and middleware
  3. Data Layer (Database): PostgreSQL with Prisma schema definitions

System Overview

graph TB
    User[๐Ÿ‘ค User] --> Frontend[React Frontend]
    Frontend --> API[Express API Server]
    API --> Auth[JWT Auth Middleware]
    Auth --> Controllers[Controllers Layer]
    Controllers --> Prisma[Prisma ORM]
    Prisma --> DB[(PostgreSQL Database)]
    Controllers --> Cloudinary[โ˜๏ธ Cloudinary CDN]
    API --> SSE[Server-Sent Events]
    SSE --> Frontend
    
    style Frontend fill:#3b82f6
    style API fill:#8b5cf6
    style DB fill:#10b981
    style Cloudinary fill:#f59e0b
Loading

High-Level Architecture

graph LR
    subgraph Client
        UI[React UI]
        Store[Context API State]
    end
    
    subgraph API Gateway
        Routes[Route Handlers]
        AuthMW[Auth Middleware]
        Upload[Upload Middleware]
    end
    
    subgraph Business Logic
        Controllers[Controllers]
        Utils[Utilities]
    end
    
    subgraph Data Access
        Prisma[Prisma Client]
        Schema[Database Schema]
    end
    
    subgraph External Services
        Cloud[Cloudinary]
        Notify[SSE Notifications]
    end
    
    UI --> Routes
    Store --> Routes
    Routes --> AuthMW
    AuthMW --> Controllers
    Controllers --> Prisma
    Controllers --> Cloud
    Controllers --> Notify
    Prisma --> Schema
    Notify --> UI
    
    style Client fill:#dbeafe
    style API Gateway fill:#fef3c7
    style Business Logic fill:#e9d5ff
    style Data Access fill:#d1fae5
    style External Services fill:#ffe4e6
Loading

๐Ÿ”„ Data Flow

ECO Approval Flow

sequenceDiagram
    participant E as Engineer
    participant API as Backend API
    participant DB as Database
    participant A as Approver
    participant N as Notification System
    
    E->>API: Create ECO (DRAFT)
    API->>DB: Save ECO with status=DRAFT
    DB-->>API: ECO Created
    API-->>E: ECO ID & Details
    
    E->>API: Add Component Drafts
    API->>DB: Insert into eco_bom_component_drafts
    DB-->>API: Drafts Saved
    
    E->>API: Submit ECO for Approval
    API->>DB: Update status=IN_PROGRESS, currentStage="Engineering Review"
    API->>N: Trigger Notification
    N-->>A: ๐Ÿ”” ECO Ready for Review
    
    A->>API: Review ECO (Approve)
    API->>DB: Create ECOApproval Record
    API->>DB: Progress to Next Stage
    API->>N: Notify Engineer
    N-->>E: ๐Ÿ”” ECO Approved
    
    Note over API,DB: If Final Stage Approved
    API->>DB: Apply ECO Changes to BOM
    API->>DB: Archive Old BOM Version
    API->>DB: Create New BOM Version
    API->>DB: Update ECO status=APPLIED
    API->>N: Notify All Stakeholders
Loading

๐Ÿ“‹ ECO Lifecycle

State Machine Flow

stateDiagram-v2
    [*] --> DRAFT: Engineer Creates ECO
    DRAFT --> DRAFT: Add/Edit Drafts
    DRAFT --> IN_PROGRESS: Submit for Approval
    
    IN_PROGRESS --> APPROVED: All Stages Approved
    IN_PROGRESS --> REJECTED: Any Stage Rejected
    
    APPROVED --> APPLIED: Auto-Apply Changes
    
    REJECTED --> DRAFT: Revise & Resubmit
    
    APPLIED --> [*]: BOM Updated & Archived
    
    note right of IN_PROGRESS
        Stages:
        1. Engineering Review
        2. Manager Approval
        3. Operations Review
        4. QA
        5. Final Approval
    end note
    
    note right of APPLIED
        - New BOM version created
        - Old BOM archived
        - Components/Operations updated
        - Audit log generated
    end note
Loading

๐Ÿš€ Installation

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • npm or yarn
  • PostgreSQL (v14 or higher)
  • Git

Backend Setup

# Clone the repository
git clone https://github.com/yourusername/ecoflow.git
cd ecoflow

# Navigate to backend directory
cd backend

# Install dependencies
npm install

# Setup PostgreSQL database
# Create a new database named 'ecoflow' or use your preferred name

# Generate Prisma client
npx prisma generate

# Run database migrations
npx prisma migrate deploy

# (Optional) Seed database with sample data
npx ts-node prisma/seed.ts

# Start development server
npm run dev

The backend server will start on http://localhost:5000

Frontend Setup

# Navigate to frontend directory (from project root)
cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

The frontend will start on http://localhost:3000 (or next available port)

Quick Start with Docker (Optional)

# Build and run with Docker Compose
docker-compose up --build

# Backend: http://localhost:5000
# Frontend: http://localhost:3000

๐Ÿ” Environment Variables

Backend .env

Create a .env file in the backend/ directory:

# Server Configuration
PORT=5000
NODE_ENV=development

# Database
DATABASE_URL="postgresql://username:password@localhost:5432/ecoflow?schema=public"

# JWT Authentication
JWT_SECRET=your-super-secure-jwt-secret-key-change-this-in-production
JWT_EXPIRES_IN=7d

# Cloudinary (File Upload)
CLOUDINARY_CLOUD_NAME=your-cloudinary-cloud-name
CLOUDINARY_API_KEY=your-cloudinary-api-key
CLOUDINARY_API_SECRET=your-cloudinary-api-secret

# CORS
ALLOWED_ORIGINS=http://localhost:3000,http://localhost:3001,http://localhost:3002

# Optional: Logging
LOG_LEVEL=info

Frontend .env

Create a .env file in the frontend/ directory:

# API Configuration
VITE_API_BASE_URL=http://localhost:5000/api

# Optional: Feature Flags
VITE_ENABLE_ANALYTICS=false
VITE_ENABLE_DEBUG=true

Getting Cloudinary Credentials

  1. Sign up at cloudinary.com
  2. Navigate to Dashboard
  3. Copy Cloud Name, API Key, and API Secret
  4. Add to backend .env file

๐Ÿ“ก API Documentation

Base URL

http://localhost:5000/api

Authentication

All protected routes require a JWT token in the Authorization header:

Authorization: Bearer <your-jwt-token>

API Endpoints

Method Endpoint Description Auth Required
๐Ÿ” Authentication
POST /auth/register Register new user No
POST /auth/login Login user and get JWT token No
GET /auth/me Get current user profile Yes
๐Ÿ“ฆ Products
GET /products List all products Yes
GET /products/:id Get product details Yes
POST /products Create new product (ADMIN/ENGINEERING) Yes
PUT /products/:id Update product (ADMIN/ENGINEERING) Yes
DELETE /products/:id Delete product (ADMIN only) Yes
๐Ÿ”ง BOMs (Bill of Materials)
GET /boms List all BOMs Yes
GET /boms/:id Get BOM details with components and operations Yes
POST /boms Create new BOM (ADMIN/ENGINEERING) Yes
POST /boms/:id/publish Publish BOM from DRAFT to ACTIVE (ADMIN/ENGINEERING) Yes
PUT /boms/:id Update BOM (ADMIN/ENGINEERING) Yes
๐Ÿ“ ECOs (Engineering Change Orders)
GET /ecos List all ECOs (with filters) Yes
GET /ecos/:id Get ECO details with drafts Yes
POST /ecos Create new ECO (ENGINEERING/ADMIN) Yes
POST /ecos/:id/submit Submit ECO for approval Yes
POST /ecos/:id/review Approve/Reject ECO (APPROVER/ADMIN) Yes
POST /ecos/:id/draft/components Add component draft to ECO Yes
PUT /ecos/:id/draft/components/:draftId Update component draft Yes
DELETE /ecos/:id/draft/components/:draftId Remove component draft Yes
POST /ecos/:id/draft/operations Add operation draft to ECO Yes
PUT /ecos/:id/draft/operations/:draftId Update operation draft Yes
DELETE /ecos/:id/draft/operations/:draftId Remove operation draft Yes
๐Ÿ‘ฅ Users & Roles
GET /users List all users (ADMIN only) Yes
POST /roles/:id/assign Assign roles to user (ADMIN only) Yes
๐Ÿ”” Notifications
GET /notifications Get user's notifications Yes
GET /notifications/stream SSE stream for real-time notifications Yes
PUT /notifications/:id/read Mark notification as read Yes
๐Ÿ“Š Reports & Comparison
GET /reports/summary Get dashboard summary statistics Yes
POST /comparison/bom Compare two BOM versions Yes

Example Request

# Login
curl -X POST http://localhost:5000/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"admin@ecoflow.com","password":"password123"}'

# Get all ECOs (with token)
curl -X GET http://localhost:5000/api/ecos \
  -H "Authorization: Bearer <your-jwt-token>"

๐Ÿ“‚ Project Structure

ECOFlow/
โ”‚
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ cloudinary.ts       # Cloudinary configuration
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ database.ts         # Prisma client setup
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ bom.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ comparison.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ eco.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ notification.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ operations.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ product.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ report.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ role.controller.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ settings.controller.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ user.controller.ts
โ”‚   โ”‚   โ”œโ”€โ”€ middlewares/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth.middleware.ts   # JWT verification & RBAC
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ upload.middleware.ts # Multer + Cloudinary
โ”‚   โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ bom.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ comparison.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ eco.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ notification.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ operations.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ product.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ report.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ role.routes.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ settings.routes.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ user.routes.ts
โ”‚   โ”‚   โ”œโ”€โ”€ types/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ api.types.ts
โ”‚   โ”‚   โ”œโ”€โ”€ utils/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ jwt.utils.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ password.utils.ts
โ”‚   โ”‚   โ””โ”€โ”€ server.ts               # Express app entry point
โ”‚   โ”œโ”€โ”€ prisma/
โ”‚   โ”‚   โ”œโ”€โ”€ schema.prisma           # Database schema
โ”‚   โ”‚   โ”œโ”€โ”€ seed.ts                 # Database seeding
โ”‚   โ”‚   โ””โ”€โ”€ migrations/             # Migration history
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ tsconfig.json
โ”‚   โ””โ”€โ”€ .env
โ”‚
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth.api.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ boms.api.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ client.ts           # Axios instance
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ecos.api.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ operations.api.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ products.api.ts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ reports.api.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ users.api.ts
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ forms/
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ CreateBOMModal.tsx
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ CreateECOModal.tsx
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ CreateProductModal.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ layout/
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ AppLayout.tsx
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ui/
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ Button.tsx
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ Input.tsx
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ Modal.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ context/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AuthContext.tsx     # Auth state management
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ NotificationContext.tsx # SSE notifications
โ”‚   โ”‚   โ”œโ”€โ”€ pages/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ BOMDetail.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ BOMs.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Dashboard.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ECODetail.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ECOs.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Features.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Login.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ProductDetail.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Products.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Reports.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Settings.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Signup.tsx
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ Users.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ App.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ main.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ App.css
โ”‚   โ”‚   โ””โ”€โ”€ index.css
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ vite.config.ts
โ”‚   โ”œโ”€โ”€ tailwind.config.js
โ”‚   โ”œโ”€โ”€ tsconfig.json
โ”‚   โ””โ”€โ”€ .env
โ”‚
โ”œโ”€โ”€ docker-compose.yml              # (Optional) Docker setup
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

๐ŸŽฏ Key Achievements

Metric Value Impact
๐Ÿ“Š Database Tables 20+ Comprehensive data model covering all ECO workflows
๐Ÿ” Role-Based Permissions 4 Roles Granular access control for different user types
๐Ÿ”„ Approval Stages 5 Stages Configurable multi-stage approval workflow
๐Ÿ“ก API Endpoints 50+ RESTful API covering all features
โšก Real-Time Updates SSE Instant notifications without polling
๐Ÿ“ฆ Type Safety 100% TypeScript Reduced runtime errors, better DX
๐ŸŽจ UI Components 30+ Reusable, accessible React components
๐Ÿ“ Audit Log Entries Unlimited Complete traceability of all changes
๐Ÿš€ Performance <100ms API Optimized database queries with Prisma
๐Ÿ”’ Security JWT + bcrypt Industry-standard authentication

๐ŸŒ Deployment

Frontend Deployment (Vercel / Netlify)

Vercel (Recommended)

# Install Vercel CLI
npm install -g vercel

# Navigate to frontend directory
cd frontend

# Deploy
vercel --prod

Environment Variables to Set:

  • VITE_API_BASE_URL: Your backend production URL

Netlify

# Build command
npm run build

# Publish directory
dist

# Environment Variables
VITE_API_BASE_URL=https://your-backend-url.com/api

Backend Deployment (Render / Railway / Fly.io)

Render (Recommended)

  1. Create a new Web Service on Render
  2. Connect your GitHub repository
  3. Configure:
    • Build Command: cd backend && npm install && npx prisma generate && npm run build
    • Start Command: cd backend && npm start
    • Environment: Node
  4. Add environment variables from .env template
  5. Create a PostgreSQL database (Render provides free tier)
  6. Update DATABASE_URL with provided connection string
  7. Deploy!

Railway

# Install Railway CLI
npm install -g @railway/cli

# Login
railway login

# Navigate to backend
cd backend

# Initialize
railway init

# Deploy
railway up

# Add PostgreSQL
railway add postgresql

# Link environment variables
railway variables

Database Deployment

Option 1: Render PostgreSQL (Included with backend)

  • Automatic backup
  • Free tier available

Option 2: Supabase

  1. Create project at supabase.com
  2. Copy connection string
  3. Update DATABASE_URL in environment variables
  4. Run migrations: npx prisma migrate deploy

Option 3: Neon

  1. Create database at neon.tech
  2. Copy serverless connection string
  3. Update DATABASE_URL
  4. Deploy migrations

Post-Deployment Steps

  1. Run Database Migrations

    npx prisma migrate deploy
  2. Seed Database (Optional)

    npx ts-node prisma/seed.ts
  3. Update CORS Origins

    • Add production frontend URL to ALLOWED_ORIGINS in backend .env
  4. Test Authentication

    • Verify JWT token generation
    • Test protected routes
  5. Setup Cloudinary

    • Configure production upload presets
    • Update allowed domains

๐Ÿ”ฎ Roadmap

Phase 1: Core Enhancements โœจ

  • Advanced Search: Elasticsearch integration for full-text search across ECOs, products, and BOMs
  • Batch Operations: Bulk approve/reject multiple ECOs simultaneously
  • Export to PDF: Generate comprehensive ECO reports with change summaries

Phase 2: Collaboration ๐Ÿค

  • Comments System: Thread-based discussions on ECO details
  • @Mentions: Tag team members for review or input
  • Activity Feed: Real-time feed of all system activities

Phase 3: Intelligence ๐Ÿง 

  • Smart Recommendations: Suggest similar ECOs based on product/BOM patterns
  • Impact Analysis: Predict downstream effects of proposed changes
  • Auto-Classification: Categorize ECOs by complexity and risk level

Phase 4: Integrations ๐Ÿ”—

  • ERP Integration: Sync with SAP, Oracle, or custom ERP systems
  • Slack/Teams Notifications: Push notifications to team channels
  • GitHub/GitLab Integration: Link code changes to ECO records
  • Email Notifications: Configurable email alerts for approvals

Phase 5: Mobile & PWA ๐Ÿ“ฑ

  • Mobile App: Native iOS/Android apps for on-the-go approvals
  • Offline Mode: Work on ECOs without internet connectivity
  • Push Notifications: Mobile notifications for urgent approvals

Phase 6: Analytics ๐Ÿ“Š

  • Advanced Dashboards: Power BI / Tableau integration
  • Cycle Time Analysis: Track average time from ECO creation to approval
  • Approval Rate Metrics: Measure approval/rejection rates by stage
  • Trend Analysis: Identify patterns in ECO types and frequencies

๐Ÿค Contributing

We welcome contributions from the community! Here's how you can help:

How to Contribute

  1. Fork the Repository

    git clone https://github.com/yourusername/ecoflow.git
  2. Create a Feature Branch

    git checkout -b feature/amazing-feature
  3. Make Your Changes

    • Follow existing code style (TypeScript + ESLint)
    • Add tests if applicable
    • Update documentation
  4. Commit Your Changes

    git commit -m "feat: add amazing feature"
  5. Push to Branch

    git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • Code Style: Follow TypeScript best practices
  • Commit Messages: Use conventional commits (feat:, fix:, docs:, etc.)
  • Testing: Ensure all tests pass before submitting PR
  • Documentation: Update README if adding new features

Bug Reports

Found a bug? Please open an issue with:

  • Clear description
  • Steps to reproduce
  • Expected vs actual behavior
  • Screenshots (if applicable)

๐Ÿ“„ License

This project is licensed under the MIT License.

MIT License

Copyright (c) 2026 ECOFlow Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

๐ŸŒŸ Support ECOFlow

If you find this project useful, please consider:

โญ Star this Repo

Show your support by starring the repository!

Stars

๐Ÿ› Report Bugs

Found an issue? Let us know!

Report Bug

โœจ Request Features

Have an idea? Share it with us!

Request Feature

๐Ÿ”— Quick Links

Documentation โ€ข Demo Video โ€ข API Reference โ€ข Contributing


Built with โค๏ธ by the ECOFlow Team

Transforming manufacturing workflows, one ECO at a time.

About

Engineering Change Order (ECO) system with Product & BoM versioning, draft isolation, approvals workflow, and full traceability.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors