This is the Home repo for the DeckHubApp organization, which comprises multiple projects.
DeckHub is a RendleLabs project with two aims:
- Provide a useful set of tools for speakers, listeners and conference organizers to engage with each other and share knowledge more effectively.
- Act as a reference application for cloud-native ASP.NET Core, with microservices, messaging, containerization, orchestration and so on.
I'm working on adding a proper README to each project that details how they work and stuff.
- cli - is the command line tool for running presentations locally.
- Live - website (central one is running at deckhub.app).
- Identity - microsite to handle user authentication with ASP.NET Identity
- Shows - microservice for Shows.
- Questions - microservice for Questions.
- Notes - microservice for viewer Notes.
- Realtime - SignalR service for moving slides along on viewers devices, and live feed of Questions.
- Slide - very microservice for storing and serving Slide images in Azure Blob Storage.
- Presenter - microservice for the CLI to interact with, and to render Presenter View.
This Home repo will also contain the Docker Compose and Kubernetes files used to work with the projects in development mode, and to run them in a Kubernetes cluster in Production.
This project is built upon many others, most of them open source, although with a couple of Azure-specific Platform-as-a-Service bits. Here are all the ones I can think of right now:
- ASP.NET Core 2.1, including:
- Entity Framework Core, plus
- Npgsql provider for EF Core
- .NET CoreRT for building native executables of the CLI tool
- Markdig for the slide rendering
- SharpYAML for parsing YAML
- App Metrics for production metrics
- PostgreSQL for most data storage
- Redis for caching and pub/sub messaging
- MessagePack for C# for small, fast messages
- Azure Service Bus for message queues
- Azure Blob Storage for storing slide images
- Docker for building images and running containers, including
- Docker Compose for local orchestration
- Kubernetes for production orchestration
You'll also see references to a couple of my own dotnet
CLI tools that I think are nifty:
- dotnet-unpkg for quick-and-dirty installation of front-end JavaScript and CSS packages from unpkg.com
- dotnet-embed for even-quicker-and-dirtier embedding of UTF8 text in the CLI tool