Skip to content

feat: System Info — export full machine report as PDF #10

@chojuninengu

Description

@chojuninengu

Summary

Add an "Export Report" button to the System Info tab that generates a clean,
professionally formatted PDF containing the machine's full specs, battery health,
disk usage, and a timestamp — ready to share when buying or selling a machine.

Why

This completes the flagship use case Sysora was designed for from day one.
Right now users have to screenshot the System Info tab. A one-click PDF export
makes Sysora the go-to tool for hardware transactions and IT audits.

Scope

Rust backend

  • Add export_report(output_path: String) -> Result<(), String> Tauri command
  • Add printpdf crate to Cargo.toml:
  printpdf = "0.7"
  • Gather all data in one shot:
    • System: OS, kernel, hostname, uptime, CPU brand + cores
    • Memory: total, used, free, swap
    • Disks: all mounted disks with usage
    • Battery: health %, design capacity, current capacity, cycle count
    • Network: interfaces and IP addresses
    • Report generated timestamp
  • Generate a clean single-page PDF with:
    • Sysora logo/name header
    • Sections for each category
    • Color-coded health indicators (green/amber/red)
    • Footer with generation timestamp and hostname
  • Save to user's chosen path via Tauri file dialog

Frontend

  • Add Export Report button to System Info tab header
  • Open native save dialog (using @tauri-apps/plugin-dialog) for output path
  • Show loading spinner while generating
  • Show success toast with file path on completion
  • Show error toast if generation fails

Acceptance criteria

  • PDF generates successfully on Ubuntu, macOS, and Windows
  • PDF contains: OS info, CPU, RAM, disk usage, battery health, network interfaces
  • File saves to user-chosen location
  • PDF is clean and readable — suitable to send to a buyer or IT department
  • Generation completes in under 3 seconds

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions