Welcome to ManageX

Complete Business Management System Documentation

About ManageX

ManageX is a comprehensive business management platform that integrates multiple business operations into a unified system. Built with modern web technologies, it provides organizations with a centralized solution for managing customers, sales, projects, inventory, and more.

The application combines operational workflows with analytics and reporting capabilities, enabling teams to streamline business processes, track performance, and make data-driven decisions.

  • Business teams can manage customer relationships, sales processes, and project workflows from a single dashboard.
  • Managers can track KPIs, analyze business metrics, and monitor team performance across all modules.
  • Administrators can configure organizations, roles, permissions, and system settings to fit their business needs.

Core Modules

  • CRM (Customer Relationship Management): Manage leads, clients, contacts, and customer interactions with comprehensive tracking and communication tools.
  • Sales Management: Handle quotes, invoices, sales orders, and payment tracking with automated workflows and reporting.
  • POS (Point of Sale): Complete retail checkout system with inventory integration, payment processing, and receipt generation.
  • Project Management: Track projects, tasks, timelines, budgets, and team collaboration with time tracking and reporting features.
  • Inventory Management: Monitor stock levels, manage warehouses, track movements, and maintain product catalogs with real-time updates.
  • Messaging & Communication: Internal messaging system for team collaboration and customer communication.
  • Reporting & Analytics: Comprehensive dashboards, business intelligence, and customizable reports across all modules.
  • User & Role Management: Secure access control, role-based permissions, and organizational structure management.

System Requirements

  • Node.js: Version 16 or higher (recommended Node 18+) plus npm 8+
  • MySQL: Version 8.0+ (minimum 5.7) with a user that can create databases, tables, and triggers
  • Developer Tools: Git for version control and a terminal with Bash or PowerShell
  • RAM: Minimum 4GB (8GB recommended for running client and server simultaneously)
  • Storage: At least 2GB free space for dependencies, database files, and build artifacts
  • Operating System: Windows 10+, macOS 10.15+, or Linux (Ubuntu 20.04+)

Frontend

EJS templating engine

Bootstrap for responsive UI

JavaScript with modern ES6+ features

Backend

Node.js (Express 4) REST API

Sequelize ORM with MySQL2 driver

JWT authentication, session management

Data & Validation

MySQL schema with migrations

Joi for request validation

Database seeders for initial data

Features

Multi-module architecture

Role-based access control

File uploads with Multer

Quick Start Guide

  1. Install system prerequisites (Node.js 16+, npm 8+, Git, and MySQL 8+) if they are not already available.
  2. Clone or download the ManageX repository and open the project in your preferred editor.
  3. Start MySQL and create an empty database to match your desired DB_NAME (check your configuration for the default database name).
  4. Navigate to the server directory and run npm install to install backend dependencies.
  5. Create server/.env with values such as DB_HOST, DB_PORT, DB_NAME, DB_USERNAME, DB_PASSWORD, JWT_SECRET, and other required environment variables.

Example .env File

# NODE Configuration
PORT=3000     
NODE_ENV=development

# Database Configuration
DB_HOST=localhost
DB_NAME=managex_db
DB_USERNAME=root
DB_PASSWORD=your_password
DB_DIALECT=mysql

# JWT Configuration
JWT_SECRET=your-super-secret-jwt-key-change-in-production
JWT_REFRESH_SECRET=your-refresh-secret-key-change-in-production
JWT_EXPIRES_IN=24h
JWT_REFRESH_EXPIRES_IN=7d

# Demo Mode Configuration
IS_DEMO=0
  1. Run npm run db:migrate to apply Sequelize migrations and create the database schema.
  2. Run seeders to bootstrap roles, users, and initial configuration data. Use npm run demo which respects the IS_DEMO setting in your .env file (see IS_DEMO Configuration section below for details).
  3. Launch the backend server with npm run dev; the application listens on the configured port (default http://localhost:3000).
  4. Open your browser and navigate to the application URL to access the ManageX system.
  5. Sign in with the seeded admin credentials (check seeders for default credentials), then configure your organization, users, and settings as needed.

IS_DEMO Configuration

The IS_DEMO environment variable controls whether demo seeders are executed during database seeding. This allows you to choose between a production-ready setup or a demo environment with sample data.

IS_DEMO=0 (Non-Demo Mode - Recommended for Production)

When IS_DEMO=0, the system will only run seeders that do not have "demo" in their filename. This includes:

  • Core organization setup
  • Role and permission configurations
  • Essential system settings
  • Admin user creation

Demo seeders are skipped: This means no sample clients, leads, projects, quotes, invoices, or other demo data will be created. This is the recommended setting for production deployments.

To run seeders in non-demo mode, set IS_DEMO=0 in your server/.env file and run:

npm run demo

This will execute only the non-demo seeders, skipping all seeders with "demo" in their filename.

IS_DEMO=1 (Demo Mode - For Testing/Development)

When IS_DEMO=1, the system will run all seeders, including those with "demo" in their filename. This creates a fully populated demo environment with:

  • Sample clients and contacts
  • Demo leads and follow-ups
  • Example projects and tasks
  • Sample quotes and invoices
  • Demo inventory items and stock movements
  • Chat channels and messages
  • Additional demo users with various roles

This mode is useful for testing, demonstrations, or development environments where you need sample data to work with.

To run all seeders including demo data, set IS_DEMO=1 in your server/.env file and run:

npm run demo

Important: The npm run demo command uses the server/bin/demo.js script which automatically reads the IS_DEMO value from your .env file and runs the appropriate seeders accordingly. Always ensure your IS_DEMO value is set correctly before running the command.

Summary:

  • IS_DEMO=0 → Runs only non-demo seeders (production-ready setup)
  • IS_DEMO=1 → Runs all seeders including demo data (full demo environment)