Open-source event organizing web application and a reference DDD solution.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Yağmur Çelik bbbb5d88db
Merge pull request #154 from abpframework/vs-internal-issue-#7524
5 days ago
.github/workflows Upgrade Eventhub to .NET 6 5 years ago
.vscode added dockerfiles 5 years ago
etc Upgrade base image in Dockerfile from 9.0 to 10.0 3 weeks ago
modules/payment Document payment module setup 3 weeks ago
scripts Add ABP Studio task scripts 3 weeks ago
src add project favicons and layout meta tags 6 days ago
test Align dependencies with .NET 10 4 weeks ago
.dockerignore update 5 years ago
.gitattributes Move solution to the root 6 years ago
.gitignore Initilize for abp-studio 10 months ago
.prettierrc Move solution to the root 6 years ago
EventHub.abpmdl Initilize for abp-studio 10 months ago
EventHub.abpsln Update ABP packages to 10.4.1 4 weeks ago
EventHub.sln Fix login-time 500 errors and migrate Admin.Web to Blazor Web App 1 week ago
EventHub.sln.DotSettings Move solution to the root 6 years ago
LICENSE Create LICENSE 5 years ago
NuGet.Config Move solution to the root 6 years ago
README.md Document EventHub startup tasks 3 weeks ago
common.props Move solution to the root 6 years ago
delete-bin-obj-folders.js Create delete-bin-obj-folders.js 5 years ago
global.json Update .NET SDK pin for ABP 10 4 weeks ago
tye.yaml Update tye.yaml 5 years ago

README.md

EventHub

.NET

This is a reference application built with the ABP Framework v10.4.1. It implements Domain Driven Design with multiple application layers, separate public/admin hosts, an IdentityServer host, PostgreSQL-backed EF Core migrations, background services, and a custom payment module.

The book

This solution is originally prepared to be a real-world example for the Mastering ABP Framework book.

abp-book

The book is the only source that explains this solution. This solution is highly referred in Understanding the Reference Solution, Domain Driven Design and other parts of the book.

You can order the book on Amazon or on Packt's website.

Requirements

  • .NET 10.0
  • Docker
  • ABP CLI for client-side library restoration
  • ABP Studio if you want to use the Solution Runner and initial tasks

How to run

Initial tasks in ABP Studio

Open EventHub.abpsln in ABP Studio and use the Default run profile. The profile defines these tasks in etc/abp-studio/run-profiles/Default.abprun.json:

  • Initialize Solution: Runs once per computer when the solution is initialized. It starts PostgreSQL/Redis containers, runs abp install-libs, and executes the DbMigrator.
  • Start Infrastructure: Starts the PostgreSQL and Redis containers.
  • Install Client-Side Libraries: Runs abp install-libs.
  • Migrate Database: Runs EventHub.DbMigrator to apply EF Core migrations and seed initial data.

After the initial task completes, start the applications from ABP Studio's Solution Runner:

  • EventHub.IdentityServer
  • EventHub.HttpApi.Host
  • EventHub.Web
  • EventHub.Admin.HttpApi.Host
  • EventHub.Admin.Web

Manual startup

From the solution root, you can run the same setup script used by ABP Studio:

./scripts/initialize-solution.ps1

Or run the steps manually:

./etc/docker/up.ps1
abp install-libs
dotnet run --project src/EventHub.DbMigrator/EventHub.DbMigrator.csproj
dotnet build /graphBuild

Then run the application projects in this order:

dotnet run --project src/EventHub.IdentityServer/EventHub.IdentityServer.csproj
dotnet run --project src/EventHub.HttpApi.Host/EventHub.HttpApi.Host.csproj
dotnet run --project src/EventHub.Web/EventHub.Web.csproj
dotnet run --project src/EventHub.Admin.HttpApi.Host/EventHub.Admin.HttpApi.Host.csproj
dotnet run --project src/EventHub.Admin.Web/EventHub.Admin.Web.csproj

admin user's password is 1q2w3E*

Solution structure

  • src/EventHub.IdentityServer: Authentication host.
  • src/EventHub.HttpApi.Host: Public HTTP API host.
  • src/EventHub.Web: Public MVC/Razor Pages web application.
  • src/EventHub.Admin.HttpApi.Host: Admin HTTP API host.
  • src/EventHub.Admin.Web: Admin Blazor WebAssembly application.
  • src/EventHub.DbMigrator: Console application that applies EF Core migrations and seeds data.
  • src/EventHub.BackgroundServices: Background worker host.
  • modules/payment: Custom payment module used by EventHub.

ABP documentation

See live

See the solution live on https://openeventhub.com

Screenshots

Public Web Side - (MVC/Razor Page UI)

Home Page

Home Page

Event Creation Page

The event creation process consists of three steps: "Create a New Event", "Add Tracks to the Event (optional)" and "Add Sessions to the Tracks (optional)".

  • After these steps, an "Event Preview" page is shown to the user to check the event details and publish the event.
Create a New Event

Event Creation Page

Add Tracks to the Event (optional)

Event Creation Page - Tracks

Add Sessions to the Tracks (optional)

Event Creation Page - Sessions

New Event Preview Page

Event Creation Page - Preview

Events Page

Events Page

Event Details Page

Event Detail

Organizations Page

Organizations Page

Organization Details Page

Organization Detail Page

Profile Page

Profile Page

Payment Module Pages

The payment module provides an API to make payments via PayPal easily. This application uses this module to perform payment transactions.

To learn more about the Payment Module and see the integration, please check out the payment module documentation.

Pricing Page

Pricing Page

Pre-Checkout Page

Pre Checkout Page