<div align="center">

<img src="https://capsule-render.vercel.app/api?type=waving&height=210&color=0:0f172a,100:2563eb&text=OpsDesk%20Pro&fontSize=54&fontColor=ffffff&animation=fadeIn&fontAlignY=35&desc=Windows%20IT%20Operations%20Desktop%20App&descAlignY=58" />

<img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=18&duration=2800&pause=700&color=2563EB&center=true&vCenter=true&width=820&lines=Audit+devices+and+collect+local+system+health;Run+network+checks+for+common+targets;Log+helpdesk+tickets+and+save+asset+inventory;Export+reports+to+JSON+CSV+and+HTML" />

# OpsDesk Pro

**Modern Windows IT operations desktop app built with C# + .NET 8 WinForms.**

![.NET](https://img.shields.io/badge/.NET-8-blue)
![Windows](https://img.shields.io/badge/Platform-Windows-0ea5e9)
![UI](https://img.shields.io/badge/UI-WinForms-1d4ed8)
![Storage](https://img.shields.io/badge/Data-JSON%20%2B%20CSV-334155)

</div>

---

## Overview

OpsDesk Pro is a practical desktop tool for IT Support, IT Generalist, and System Operations tasks on Windows.

It helps you:
- inspect the local machine state
- run simple connectivity checks
- log support tickets
- store asset records
- export operational reports

---

## Core Features

- **Dashboard Audit**
  - machine name, user, domain, OS, runtime, CPU count
  - uptime based on local system tick count
  - system drive capacity and health note
  - detected IPv4 addresses

- **Network Checks**
  - pings `localhost`, `1.1.1.1`, `8.8.8.8`, and `google.com`
  - shows reachable status, roundtrip time, and response notes

- **Ticket Logging**
  - local helpdesk-style ticket entry
  - stores title, category, priority, owner, notes, and status

- **Asset Inventory**
  - stores device name, asset tag, location, assignee, status, and notes

- **Report Export**
  - saves one bundle to JSON
  - saves tickets and assets to CSV
  - generates a browser-friendly HTML report

---

## Why This Build Is Fixed

This version corrects two issues from the previous package:

- the project files now sit at the **root of the extracted folder**, so `dotnet restore` and `dotnet build` work from that directory
- stray leading `\` characters were removed from source files, which could break parsing/building

It also avoids running network pings during startup, so the app opens faster and with less chance of feeling stuck.

---

## Project Structure

```text
OpsDeskPro.csproj
Program.cs
MainForm.cs
run.ps1
README.md
data/
├── assets.json
├── tickets.json
└── reports/
```

---

## How To Run

## Option 1 — PowerShell helper

```powershell
Set-ExecutionPolicy -Scope Process Bypass
.\run.ps1
```

## Option 2 — Standard .NET commands

```powershell
dotnet restore

dotnet build

dotnet run --project .\OpsDeskPro.csproj
```

---

## Output Meaning

- **Status: Healthy**
  - the system drive has at least 10% free space

- **Status: Warning**
  - the system drive could not be read, or free space is below 10%

- **Network Reachable = True**
  - the target responded to ping within the timeout

- **RoundtripMs = -1**
  - the target did not reply successfully

- **Reports Folder**
  - contains exported JSON, CSV, and HTML snapshots for review or handoff

---

## Notes

- This app is designed for **Windows**.
- It uses **local files** and does not require an external database.
- If your firewall blocks ICMP/ping, some network checks may show unreachable even when the internet works.
