Windows Setup Guide

Install Salon Management on Windows 10 or Windows 11

Prerequisites

  • Windows 10 or Windows 11 (64-bit)
  • Permission to install software (administrator when prompted)
  • At least 4GB RAM (8GB recommended)
  • Free disk space for Node, MySQL, and dependencies
  • Internet access for installers

Step 1: Install Node.js

1

Download

Download the current LTS installer from https://nodejs.org (64-bit .msi).

Version

Use Node.js 18 or newer (LTS is recommended).

2

Run the installer

  • Accept the license
  • Keep the default path (for example C:\Program Files\nodejs\)
  • Ensure Add to PATH is selected
  • Complete the wizard
3

Verify

Open a new Command Prompt or PowerShell window and run:

node --version
npm --version

If commands are not found, sign out and back in, or restart the PC so PATH updates apply.

Step 2: Install MySQL

1

Download

From MySQL Community Server, choose the Windows installer (MySQL Installer is convenient for Server + optional tools).

Compatibility

Use MySQL 8.0 or compatible. Note the root password you set during setup.

2

Install

  • Typical choice: Developer Default or Server only
  • Enable MySQL as a Windows Service and start it automatically
  • Allow through Windows Firewall if the installer asks
3

Create the application database

Using MySQL Workbench or mysql.exe in Command Prompt (add MySQL bin to PATH or use full path). Example:

CREATE DATABASE salon_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Optionally create a dedicated user (recommended) and grant access to that database only; use the same credentials in server/.env as DB_USER and DB_PASSWORD.

Step 3: Salon Management (server)

The application is a single Express server with EJS views—no separate frontend build step is required for local development.

1

Open the server folder

cd "D:\path\to\pdma_envato_salon_management\server"

Use your real project path (drive letter and folder may differ).

2

Install packages

npm install
3

Environment file

Copy the example file and edit it:

copy .env-example .env
notepad .env

Example server/.env

NODE_ENV=development
PORT=3000

DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=salon_management
DB_USER=root
DB_PASSWORD=your_mysql_password

JWT_SECRET=change_me_to_a_long_random_string
JWT_EXPIRES_IN=7d

# Optional demo showcase — omit or false for persistent data
# DEMO_SEED_CRON_ENABLED=false

Security

Use a strong JWT_SECRET in any shared or production environment. Do not commit .env.

4

Migrate and seed

npm run db:migrate
npm run db:seed
5

Start the application

npm run dev

By default the app listens on http://127.0.0.1:3000. Open /auth/login in your browser (the home route redirects there).

Demo credentials (after seeding)

Password for all demo accounts: Admin@1234

  • Admin: admin@salon.com
  • Receptionist: reception@salon.com
  • Staff: staff@salon.com, staff02@salon.com, staff03@salon.com

Important

Change these passwords before any production deployment. If DEMO_SEED_CRON_ENABLED=true, demo data may reset periodically—disable for persistent use.

Windows tips

  • Ports: If 3000 is busy, change PORT in server/.env or stop the other program. See Troubleshooting → Port conflicts.
  • MySQL service: services.msc → ensure MySQL is Running.
  • Long paths: Keep the repo in a path without unusual permissions; avoid very long folder names if npm shows path errors.
  • PowerShell execution policy: If scripts fail, you may need to adjust policy for your user scope—prefer project-local tooling over disabling security globally.
  • Production on Windows Server: See Server Configuration for reverse proxy, HTTPS, and process management (PM2 or IIS as appropriate).

Troubleshooting

  • Cannot connect to MySQL: Service running, correct DB_USER / DB_PASSWORD, database created.
  • Page does not load: Confirm npm run dev is running and you use the URL with the correct PORT.
  • 401 on login: Seed completed; use demo emails and Admin@1234; confirm JWT_SECRET is set.