eEvent is a modern event management platform built with ASP.NET Core (.NET 8), following Clean Architecture and Domain-Driven Design (DDD) principles.
It enables organizers to create and manage events, and freelancers to browse, apply, and track their applications.
- Create Events: Add new events with title, description, date, location, role, budget, and requirements.
- Manage Events: View, edit, and delete your events from a dashboard.
- Review Applications: See all freelancer applications for your events, view applicant details, and update application status (accept, reject, withdraw).
- Browse Events: View all available events.
- Apply to Events: Submit applications with a custom message to the organizer.
- Track Applications: View the status of all submitted applications (pending, accepted, rejected, withdrawn).
- Role-based Dashboards: Separate dashboards for organizers and freelancers.
- Email Notifications: SMTP integration for application and event updates.
- Code Coverage: Configured for Visual Studio and CI.
- .NET 8 SDK
- SQL Server or SQLite
- Visual Studio 2022 or VS Code
-
Clone the repository
git clone https://github.com/michaelokolo/eEventWeb.git cd eEventWeb -
Configure the database
- Update
appsettings.jsonwith your connection string. - Ensure your connection string in
appsettings.jsonpoint to a local SQL Server instance. - Ensure the tool EF wa already installed.
dotnet tool update --global dotnet-ef
- Run migrations:
These commands will set up two distinct databases: one dedicated to event-related data and another for storing the app’s user credentials and identity information.
dotnet restore dotnet tool restore dotnet ef database update --context AppIdentityDbContext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj dotnet ef database update --context EventAppContext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj
- Update
-
Configure SMTP (Email)/Login Password
- Use User Secrets for development:
dotnet user-secrets set "SmtpSettings:Username" "your_smtp_username" dotnet user-secrets set "SmtpSettings:Password" "your_smtp_password" dotnet user-secrets set "SmtpSettings:From" "your_from_address" dotnet user-secrets set "Authorization:DefaultPassword" "your_login_password"
- For production, use environment variables or a secrets manager.
- Use User Secrets for development:
-
Run the application
dotnet run --project src/Web
On the first run, the application will automatically seed both databases. This means you’ll see events displayed on the home page, and you’ll be able to log in using either [email protected] or [email protected].
-
Access the app
- Open https://localhost:7290/ in your browser. Note: To create migrations, run the following commands (from the Web folder in the CLI):
dotnet ef migrations add InitialIdentityModel --context AppIdentityDbContext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj -o Identity/Migrations dotnet ef migrations add InitialEventModel --context EventAppContext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj -o Data/Migrations
eEventWeb/
├── src/
│ ├── ApplicationCore/ # Domain models, business logic, DDD aggregates
│ ├── Infrastructure/ # Data access, email, external services
│ ├── Web/ # UI (Razor Pages, Blazor, controllers, views)
├── README.md # Project documentation
├── LICENSE # License file
└── .gitignore # Git ignore rules
- SMTP Settings: Set via user secrets or environment variables.
- Login Password: Set via user secrets or environment variables.
- Database: Connection string in
appsettings.json.
- Fork the repository
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/my-feature) - Create a Pull Request
This project is licensed under the MIT License.
- Inspired by eShopOnWeb by Microsoft.
- Uses Ardalis.Specification for repository patterns.
For questions or support, open an issue or contact the maintainers.