# Acc Installer

An automated software setup, extraction, and installation pipeline for NovinPardaz systems.

## Overview

Acc Installer performs the end-to-end setup process for NovinPardaz applications:
1. **Directory Setup & Source File Transfer**: Identifies the primary non-system drive (e.g. `D:\`, `E:\`) and initializes directory structures (`NovinPardazOne/NovinSoft`, `NovinPardazOne/NovinAcc`). Copies required software packages from the source path.
2. **NovinAcc Extraction**: Moves and extracts `NovinAcc.zip` archive to the target accounting directory.
3. **NovinDesk Automated Installation**: Extracts `NovinDesk.zip`, triggers the installer binary, and automates UI acceptance.

## Project Structure

```text
acc-installer/
├── data/
│   └── sciter.dll          # Sciter dynamic library asset
├── module/
│   ├── __init__.py         # Package entry points & public exports
│   ├── config.py           # Unified configuration & dynamic drive resolver
│   ├── downloader_copier.py# Directory setup & file copier
│   ├── extract_acc.py      # Archive extractor for NovinAcc
│   └── install_novindesk.py# NovinDesk extractor & automated installer
├── .gitignore              # Standard ignore definitions
├── CONTRIBUTING.md         # Team branching and contribution guidelines
├── main.py                 # Main orchestrator runner CLI
├── README.md               # Project documentation
└── requirements.txt        # Python package dependencies
```

## Quick Start

### 1. Requirements
* Python 3.9+ (Windows OS recommended)

### 2. Setup Virtual Environment
```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
```

### 3. Execution
To run the full installer pipeline:
```powershell
python main.py
```

To specify custom drive or source directory:
```powershell
python main.py --source "C:\SoftwareNP" --drive "D:\"
```

Or run in dry-run mode (validates setup without making destructive changes):
```powershell
python main.py --dry-run
```

## Team Workflow & Branching

We follow a **Feature-Branching / GitFlow** model. Please read [CONTRIBUTING.md](CONTRIBUTING.md) before pushing code or creating Pull Requests.
