Files
acc-installer/README.md

62 lines
2.2 KiB
Markdown

# 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.