{"id":30703052,"url":"https://github.com/managedcode/codeui","last_synced_at":"2025-09-02T16:54:10.091Z","repository":{"id":312580606,"uuid":"1047953652","full_name":"managedcode/CodeUI","owner":"managedcode","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-31T18:14:12.000Z","size":137,"stargazers_count":0,"open_issues_count":19,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-31T18:22:15.768Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/managedcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-31T15:48:41.000Z","updated_at":"2025-08-31T18:12:29.000Z","dependencies_parsed_at":"2025-08-31T18:22:50.596Z","dependency_job_id":"f31f988e-acb5-4430-be60-da7a66eb0d1d","html_url":"https://github.com/managedcode/CodeUI","commit_stats":null,"previous_names":["managedcode/codeui"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/managedcode/CodeUI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/managedcode%2FCodeUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/managedcode%2FCodeUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/managedcode%2FCodeUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/managedcode%2FCodeUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/managedcode","download_url":"https://codeload.github.com/managedcode/CodeUI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/managedcode%2FCodeUI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273317766,"owners_count":25084037,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-02T16:54:08.772Z","updated_at":"2025-09-02T16:54:10.051Z","avatar_url":"https://github.com/managedcode.png","language":"CSS","readme":"# CodeUI\n\nA modern .NET 9 application with Aspire orchestration, Blazor Server-side rendering, and Central Package Management.\n\n## 🏗️ Project Structure\n\n```\nCodeUI/\n├── CodeUI.slnx                   # Modern XML-based solution file (.NET 9+)\n├── Directory.Packages.props      # Central Package Management configuration\n├── global.json                   # .NET 9 SDK enforcement\n├── CodeUI.AppHost/               # Aspire orchestration project\n├── CodeUI.Web/                   # Blazor Server application\n├── CodeUI.Core/                  # Core business logic and data models\n├── CodeUI.Orleans/               # Orleans grain definitions\n├── CodeUI.Tests/                 # Unit tests using xUnit\n├── CodeUI.AspireTests/           # Integration tests using Aspire testing framework\n└── README.md                     # This file\n```\n\n## 🚀 Technology Stack\n\n- **.NET 9.0** - Latest version of .NET with C# 13 language features\n- **Aspire 9.4.1** - Latest .NET Aspire for cloud-native orchestration\n- **Central Package Management** - Unified dependency management across solution\n- **Blazor Server** - Server-side rendering with real-time updates\n- **ASP.NET Core Identity** - Built-in authentication and authorization\n- **Entity Framework Core** - Data access with SQLite database\n- **Orleans** - Virtual Actor Model for distributed applications\n\n## 📋 Prerequisites\n\n**⚠️ Important: You must install .NET 9 before you start!**\n\nBefore running this application, ensure you have:\n\n- **[.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet/9.0)** - **REQUIRED**\n- [Docker](https://docs.docker.com/get-docker/) (for Aspire orchestration)\n- [Visual Studio 2022](https://visualstudio.microsoft.com/) or [VS Code](https://code.visualstudio.com/) (recommended)\n\n## 🛠️ Setup Instructions\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/managedcode/CodeUI.git\ncd CodeUI\n```\n\n### 2. Verify .NET 9 Installation\n\n```bash\n# Verify .NET 9 is installed\ndotnet --version\n# Should show 9.0.x or higher\n\n# List installed SDKs\ndotnet --list-sdks\n# Should include 9.0.x\n```\n\n### 3. Install .NET Aspire Workload\n\n```bash\ndotnet workload update\ndotnet workload install aspire\n```\n\n### 4. Restore Dependencies\n\n```bash\n# Use .slnx solution format for .NET 9\ndotnet restore CodeUI.slnx\n```\n\n### 5. Build the Solution\n\n```bash\n# Use .slnx solution format for .NET 9\ndotnet build CodeUI.slnx\n```\n\n## 🏃‍♂️ Running the Application\n\n### Option 1: Run with Aspire Orchestration (Recommended)\n\n```bash\ndotnet run --project CodeUI.AppHost\n```\n\nThis will:\n- Start the Aspire dashboard at `http://localhost:18888`\n- Launch the Blazor Server app\n- Provide monitoring and observability features\n\n### Option 2: Run Blazor Server App Directly\n\n```bash\ndotnet run --project CodeUI.Web\n```\n\nThe application will be available at `http://localhost:5225` (or the port shown in the console).\n\n## 🔐 Authentication\n\nThe application includes basic ASP.NET Core Identity authentication with:\n\n- **Registration** - Create new user accounts\n- **Login/Logout** - User authentication\n- **In-Memory Database** - For development (switch to SQLite/SQL Server/PostgreSQL for production)\n- **Relaxed Password Policy** - For development convenience\n\n### Default Settings:\n- Minimum password length: 6 characters\n- No special character requirements\n- No email confirmation required\n\n## 🏗️ Project Details\n\n### CodeUI.AppHost\n- **Purpose**: Aspire orchestration host\n- **Features**: Service discovery, monitoring, distributed tracing\n- **Dependencies**: Aspire.Hosting\n\n### CodeUI.Web\n- **Purpose**: Blazor Server application\n- **Features**: Interactive server-side rendering, authentication, responsive UI\n- **Dependencies**: ASP.NET Core Identity, Entity Framework Core\n\n### CodeUI.Core\n- **Purpose**: Shared business logic and data models\n- **Features**: Entity Framework DbContext, Identity models\n- **Dependencies**: Entity Framework Core, ASP.NET Core Identity\n\n### CodeUI.Orleans\n- **Purpose**: Orleans grain definitions for distributed computing\n- **Features**: Virtual Actor Model interfaces\n- **Dependencies**: Microsoft.Orleans.Abstractions\n\n## 🧪 Development\n\n### Building\n\n```bash\n# Build entire solution using .slnx format\ndotnet build CodeUI.slnx\n\n# Build specific project\ndotnet build CodeUI.Web\n```\n\n### Testing\n\n```bash\n# Run all tests using .slnx format\ndotnet test CodeUI.slnx\n\n# Run tests with coverage\ndotnet test CodeUI.slnx --collect:\"XPlat Code Coverage\"\n```\n\n### Adding Migrations (when using a real database)\n\n```bash\n# Add migration\ndotnet ef migrations add InitialCreate --project CodeUI.Core --startup-project CodeUI.Web\n\n# Update database\ndotnet ef database update --project CodeUI.Core --startup-project CodeUI.Web\n```\n\n## 📁 Key Files\n\n- `CodeUI.slnx` - Modern XML-based solution file for .NET 9\n- `Directory.Packages.props` - Central Package Management configuration\n- `global.json` - .NET 9 SDK enforcement\n- `CodeUI.AppHost/Program.cs` - Aspire orchestration configuration\n- `CodeUI.Web/Program.cs` - Web application startup and services configuration\n- `CodeUI.Core/Data/ApplicationDbContext.cs` - Entity Framework database context\n- `CodeUI.Core/Data/ApplicationUser.cs` - Identity user model\n- `CodeUI.Orleans/Grains/IHelloGrain.cs` - Sample Orleans grain interface\n\n## 🚀 Deployment\n\n### Self-Contained Deployment (Recommended)\n\nCodeUI supports self-contained deployment for production environments without requiring Docker or external dependencies.\n\n#### Quick Start\n```bash\n# Build for all platforms\n./deployment/scripts/build-all.sh\n\n# Manual build commands\ndotnet publish CodeUI.Web -c Release -r win-x64 --self-contained -p:PublishSingleFile=true\ndotnet publish CodeUI.Web -c Release -r linux-x64 --self-contained -p:PublishSingleFile=true\ndotnet publish CodeUI.Web -c Release -r osx-x64 --self-contained -p:PublishSingleFile=true\n```\n\n#### Platform Installation\n- **Windows**: Run `install-windows.ps1` as Administrator\n- **Linux**: Run `sudo ./install-unix.sh`\n- **macOS**: Run `sudo ./install-unix.sh`\n\n#### Features\n- ✅ Single executable (~150MB per platform)\n- ✅ SQLite database for data persistence\n- ✅ Windows Service / systemd / LaunchDaemon auto-start\n- ✅ No external dependencies required\n- ✅ Production-ready configuration\n\nSee [deployment/README.md](deployment/README.md) for detailed instructions.\n\n### Traditional Deployment\n\nFor development or containerized environments:\n\n1. **Update Database Provider**: Change from In-Memory to SQL Server/PostgreSQL in `Program.cs`\n2. **Configure Connection Strings**: Update `appsettings.json` with production database\n3. **Security Settings**: Review and harden authentication settings\n4. **Environment Variables**: Configure for production environment\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/your-feature-name`\n3. Commit your changes: `git commit -am 'Add some feature'`\n4. Push to the branch: `git push origin feature/your-feature-name`\n5. Submit a pull request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 📞 Support\n\nFor questions and support:\n- Create an issue in the GitHub repository\n- Check existing documentation and README\n- Review the [.NET Aspire documentation](https://learn.microsoft.com/en-us/dotnet/aspire/)\n\n---\n\n**Happy Coding! 🎉**","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanagedcode%2Fcodeui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanagedcode%2Fcodeui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanagedcode%2Fcodeui/lists"}