Cross-platform Excel file comparison tool built with .NET 8 and Avalonia UI
This guide provides everything you need to start developing SheetAtlas.
- .NET 8 SDK - Download
- VSCode (recommended) with extensions:
- C# Dev Kit
- Avalonia for VSCode
- Linux users: Install system libraries
sudo apt install libx11-dev libice-dev libsm-dev libfontconfig1-dev
# Clone repository
git clone https://github.com/ghostintheshell-192/sheet-atlas.git
cd sheet-atlas
# Restore dependencies and build
dotnet restore
dotnet build
# Run the application
dotnet run --project src/SheetAtlas.UI.Avalonia/SheetAtlas.UI.Avalonia.csproj
# Run tests
dotnet testSheetAtlas/
├── src/
│ ├── SheetAtlas.Core/ # Core business logic (Clean Architecture)
│ │ ├── Application/ # Application services & DTOs
│ │ ├── Domain/ # Domain entities & value objects
│ │ └── Shared/ # Shared utilities & extensions
│ ├── SheetAtlas.Infrastructure/ # Infrastructure layer
│ │ └── External/ # File readers (Excel, CSV)
│ └── SheetAtlas.UI.Avalonia/ # Avalonia UI layer (MVVM)
│ ├── ViewModels/ # MVVM ViewModels
│ ├── Views/ # XAML Views
│ ├── Services/ # UI-specific services
│ └── Converters/ # XAML converters
├── tests/
│ └── SheetAtlas.Tests/ # Unit and integration tests
├── docs/ # Documentation
│ ├── website/ # GitHub Pages site
│ └── project/ # Developer docs (you are here)
├── build/ # Build scripts (installers)
├── .github/workflows/ # CI/CD pipelines
├── CLAUDE.md # Development conventions
├── CHANGELOG.md # Version history
└── README.md # User-facing project overview
- Framework: .NET 8 (LTS)
- UI: Avalonia UI 11+ (cross-platform native UI)
- Architecture: Clean Architecture + MVVM
- File Processing: DocumentFormat.OpenXml, ExcelDataReader, CsvHelper
- Testing: xUnit + Moq + FluentAssertions
- Security First: 100% local processing, no cloud dependencies
- Clean Architecture: Separation of concerns, testable, maintainable
- MVVM Pattern: Clear separation between UI and business logic
- Fail Fast: Exceptions for bugs, Result objects for business errors
For architecture overview, see ARCHITECTURE.md. For detailed specs, see technical-specs.md.
Follow conventions in CLAUDE.md:
- Naming: PascalCase for classes/methods, camelCase for locals
- Code Style: Enforced via
dotnet formatand.editorconfig - Comments: English only, explain "why" not "what"
- Error Handling: Never throw for business errors, use Result objects
Always work on feature branches:
# Start new feature (from develop)
git checkout develop
git pull origin develop
git checkout -b feature/your-feature-name
# Commit and push
git add .
git commit -m "feat: descriptive message"
git push -u origin feature/your-feature-name
# Merge when ready
git checkout develop
git merge feature/your-feature-name
git push origin developBranch naming:
feature/description- New featuresfix/description- Bug fixesrefactor/description- Code improvementsdocs/description- Documentation updates
# Run all tests
dotnet test
# Run specific test
dotnet test --filter "TestClassName"
# Run with coverage
dotnet test --collect:"XPlat Code Coverage"# Build release configuration
dotnet build --configuration Release
# Create platform-specific build
dotnet publish -c Release --self-contained -r win-x64
dotnet publish -c Release --self-contained -r linux-x64
dotnet publish -c Release --self-contained -r osx-x64"SDK not found"
dotnet --version # Verify .NET 8 SDK installed
dotnet clean && dotnet restore && dotnet build"Project file could not be loaded"
- Check
.csprojfiles for errors - Ensure all package references are resolvable
Application doesn't start on Linux
# Install required system libraries
sudo apt install libx11-dev libice-dev libsm-dev libfontconfig1-devExcel files won't load
- Check file permissions
- Verify file is not corrupted
- See logs in
logs/directory (created at runtime)
Tests fail with "file not found"
- Check test data paths in
tests/SheetAtlas.Tests/TestData/ - Ensure working directory is project root
- CLAUDE.md - Complete development standards
- CHANGELOG.md - Auto-generated version history
- RELEASE_PROCESS.md - Release workflow
- ARCHITECTURE.md - Architecture overview with diagrams
- technical-specs.md - Performance, security, config specs
Releases are automated via GitHub Actions:
- Create tag (manual or via
release-changelog.ymlworkflow) - Pipeline builds Windows/Linux/macOS installers automatically
- GitHub release created with all artifacts
- Website updates automatically with new version
See RELEASE_PROCESS.md for complete details.
- Fork the repository
- Create feature branch from
develop - Follow coding standards in CLAUDE.md
- Write tests for new features
- Submit pull request to
developbranch
This developer hub provides everything needed to contribute to SheetAtlas. For development standards and conventions, see CLAUDE.md.
Last Updated: January 2026 | Project Status: Alpha (v0.5.x)