{"id":30641062,"url":"https://github.com/evrendev/blazor-presentation","last_synced_at":"2026-02-11T07:02:43.009Z","repository":{"id":311606860,"uuid":"1044254491","full_name":"evrendev/blazor-presentation","owner":"evrendev","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-25T12:27:33.000Z","size":1283,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-25T14:36:51.047Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evrendev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-08-25T12:11:00.000Z","updated_at":"2025-08-25T12:27:36.000Z","dependencies_parsed_at":"2025-08-25T14:36:53.964Z","dependency_job_id":"74bedc37-9861-43aa-a61a-87214ba6d88f","html_url":"https://github.com/evrendev/blazor-presentation","commit_stats":null,"previous_names":["evrendev/blazor-presentation"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/evrendev/blazor-presentation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evrendev%2Fblazor-presentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evrendev%2Fblazor-presentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evrendev%2Fblazor-presentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evrendev%2Fblazor-presentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evrendev","download_url":"https://codeload.github.com/evrendev/blazor-presentation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evrendev%2Fblazor-presentation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29329492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T06:13:03.264Z","status":"ssl_error","status_checked_at":"2026-02-11T06:12:55.843Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-08-31T01:07:50.692Z","updated_at":"2026-02-11T07:02:42.984Z","avatar_url":"https://github.com/evrendev.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blazor Slide Presentation\n\nA modern, interactive slide presentation system built with ASP.NET Core Blazor that explains Blazor technology in a professional and accessible way. This project demonstrates real-time presentation capabilities using SignalR for synchronized slide navigation.\n\n## 🎯 Project Overview\n\nThis is a full-stack presentation application consisting of two main components:\n\n- **Frontend**: Blazor Server application that renders the presentation slides\n- **PublicApi**: ASP.NET Core Web API with SignalR hub for real-time slide synchronization\n\nThe presentation covers Blazor fundamentals, hosting models, data binding, and comparisons with other web technologies, making it perfect for educational purposes or professional presentations.\n\n## 🏗️ Architecture\n\n### Frontend (Blazor Server)\n\n- **Framework**: ASP.NET Core 9.0 with Blazor Server\n- **Purpose**: Renders interactive slide presentation\n- **Features**:\n  - 19 professional slides covering Blazor concepts\n  - Speaker notes functionality\n  - Responsive design with Tailwind CSS\n  - Real-time slide navigation\n  - Server-side rendering for optimal performance\n\n### PublicApi (Web API)\n\n- **Framework**: ASP.NET Core 9.0 Web API\n- **Purpose**: Provides real-time communication and slide synchronization\n- **Features**:\n  - SignalR hub for real-time updates\n  - RESTful API endpoints\n  - CORS configuration for cross-origin requests\n  - OpenAPI documentation support\n\n## 📋 Presentation Content\n\nThe presentation includes the following 19 slides:\n\n1. Explaining Blazor\n2. What We'll Cover\n3. What is Blazor? (An Easy Explanation)\n4. What is Blazor? (The Technical Side)\n5. How Blazor Runs: Hosting Models\n6. Running on the Server\n7. Running in the Browser\n8. Server vs. WebAssembly (WASM)\n9. The Next Step: Mixing Render Modes\n10. Blazor vs. Old HTML Pages\n11. Blazor vs. JavaScript Frameworks\n12. Main Differences\n13. What is Middleware?\n14. The Middleware Pipeline in Action\n15. The Magic of Data Binding\n16. How Data Binding Works\n17. How @bind Works Inside\n18. Summary\n19. Questions?\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- [.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet/9.0)\n- Visual Studio 2022 or VS Code\n- Modern web browser\n\n### Installation\n\n1. **Clone the repository**\n\n   ```bash\n   gh repo clone evrendev/blazor-presentation\n   cd blazor-slide\n   ```\n\n2. **Restore dependencies**\n\n   ```bash\n   dotnet restore\n   ```\n\n3. **Build the solution**\n   ```bash\n   dotnet build\n   ```\n\n### Running the Application\n\n#### Option 1: Run Both Projects Simultaneously\n\n1. **Start the API (Terminal 1)**\n\n   ```bash\n   cd PublicApi\n   dotnet run\n   ```\n\n   The API will start at `https://localhost:3001`\n\n2. **Start the Frontend (Terminal 2)**\n   ```bash\n   cd Frontend\n   dotnet run\n   ```\n   The frontend will start at `https://localhost:3000`\n\n#### Option 2: Using Visual Studio\n\n1. Set multiple startup projects in Solution Properties\n2. Configure both `PublicApi` and `Frontend` to start\n3. Press F5 to run both projects\n\n### Development URLs\n\n- **Frontend**: https://localhost:3000\n- **API**: https://localhost:3001\n- **SignalR Hub**: https://localhost:3001/slideHub\n\n## 🛠️ Development\n\n### Project Structure\n\n```\nblazor-slide/\n├── BlazorSlide.sln              # Solution file\n├── PublicApi/                    # Web API project\n│   ├── Controllers/             # API controllers\n│   ├── SlideHub.cs             # SignalR hub\n│   ├── Program.cs              # API startup configuration\n│   └── appsettings.json        # API configuration\n└── Frontend/              # Blazor Server project\n    ├── Components/             # Blazor components\n    │   └── Slides/             # Individual slide components\n    ├── Models/                 # Data models\n    ├── Pages/                  # Razor pages\n    ├── Services/               # Application services\n    ├── Shared/                 # Shared components\n    ├── Program.cs              # Frontend startup\n    └── wwwroot/               # Static files\n```\n\n### Key Components\n\n- **SlideService**: Manages slide data and navigation\n- **SlideHub**: SignalR hub for real-time communication\n- **Slide Components**: Individual Razor components for each slide\n- **SlideInfo Model**: Defines slide metadata and component types\n\n### Adding New Slides\n\n1. Create a new Razor component in `Frontend/Components/Slides/`\n2. Add the slide to `SlideService.GetSlides()` method\n3. Follow the existing slide structure with speaker notes support\n\n## 🎨 Styling\n\nThe project uses **Tailwind CSS** for styling, providing:\n\n- Responsive design\n- Modern, professional appearance\n- Consistent color scheme (blue theme)\n- Mobile-friendly layouts\n\n## 🔧 Configuration\n\n### CORS Configuration\n\nThe API is configured to accept requests from:\n\n- `https://evren.dev`\n- `https://localhost:3000`\n\nUpdate `Program.cs` in PublicApi to modify CORS settings.\n\n### Environment Settings\n\n- Development: Detailed error pages and OpenAPI documentation\n- Production: Optimized for performance and security\n\n## 📡 Real-time Features\n\nThe application uses SignalR for:\n\n- Synchronized slide navigation across multiple clients\n- Real-time presentation control\n- Live audience engagement capabilities\n\n## 🚀 Deployment\n\n### Prerequisites for Production\n\n- IIS or nginx web server\n- SQL Server or other database (if needed)\n- SSL certificates for HTTPS\n\n### Docker Support\n\nThe application can be containerized using Docker. Create Dockerfiles for both projects and use docker-compose for orchestration.\n\n## 📄 API Documentation\n\nWhen running in development mode, API documentation is available at:\n\n- OpenAPI: `https://localhost:3001/openapi`\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/new-feature`\n3. Commit changes: `git commit -am 'Add new feature'`\n4. Push to branch: `git push origin feature/new-feature`\n5. Submit a pull request\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## 🆘 Support\n\nFor support and questions:\n\n- Create an issue in the repository\n- Check existing documentation\n- Review the slide content for Blazor learning resources\n\n## 🎓 Educational Use\n\nThis project serves as an excellent example of:\n\n- Blazor Server application development\n- SignalR real-time communication\n- Modern ASP.NET Core architecture\n- Component-based UI development\n- Professional presentation systems\n\nPerfect for developers learning Blazor or needing a presentation system for technical content.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevrendev%2Fblazor-presentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevrendev%2Fblazor-presentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevrendev%2Fblazor-presentation/lists"}