# 1. Project Idea 💡

OfficeSpaceManager is a modular, production-grade PowerShell CLI toolkit designed to simplify and centralise the management of Microsoft Places, Exchange Room Resources, and associated metadata across Microsoft 365 environments. The project aims to provide a single, logical workflow for administrators to set up, maintain, and recover their environment, reducing the need to navigate multiple admin portals or scripts.

# Vision & Rationale

  • Centralised Management: Eliminate fragmented admin experiences by providing a unified CLI for all resource and metadata operations.
  • Automation & Consistency: Enable bulk operations (import/export), enforce naming conventions, and automate repetitive tasks to reduce errors and manual effort.
  • Disaster Recovery: Provide robust backup and restore capabilities for both configuration and metadata, ensuring business continuity.
  • Extensibility: Use a modular structure to allow easy addition of new features, domains, and integrations as Microsoft 365 evolves.
  • User Experience: Make the job of a Microsoft Modern Workplace analyst/engineer easier, faster, and less error-prone.

# Why This Project?

  • Manual management of Microsoft Places, Exchange resources, and metadata is time-consuming and error-prone.
  • Existing tools are fragmented, lack bulk/batch features, and often require deep technical knowledge.
  • There is a need for a repeatable, auditable, and recoverable workflow for resource management in Microsoft 365 environments.

# Intended Audience

  • Microsoft 365 administrators, Modern Workplace engineers, and IT professionals responsible for resource and metadata management.

# Key Technical Principles and Recent Improvements

  • Robust Connection Logic: Connection routines are designed to be resilient, with session reuse, robust error handling, and clear diagnostic output for all Microsoft 365 services (Exchange, Teams, Places).

  • Approved Verb Compliance: All cmdlets and scripts use approved PowerShell verbs, ensuring best practice, discoverability, and compatibility with PowerShell tooling.

  • Linting and Static Analysis: Linting and static analysis are integrated into the workflow, with PSScriptAnalyzer used to ensure code quality and prevent regressions.

  • Refactor Hygiene: All refactors and renames are performed project-wide, with automated updates to all references and documentation to prevent legacy issues.

  • Accessible and Inclusive Output: All output and documentation use EN-AU spelling and accessible, inclusive language for clarity and compliance.

  • Error Handling and User Experience: Error handling is standardised, with actionable messages and prompts that remain visible until acknowledged, ensuring no errors are missed.

# Project Ideas

  • Automated resource provisioning for Microsoft Places
  • Bulk import/export of metadata
  • Robust backup and restore
  • Modular CLI for all operations