A modern, full-stack event management platform built with .NET and React, designed to streamline event organization and management processes.
- 🎫 Event Creation & Management - Create and manage events with detailed information
- 🔍 Advanced Search & Filtering - Find events easily
- 👥 User Authentication - Google OAuth integration
- 📱 QR Code Support - Generate and scan QR codes for events
- 🖼️ Image Management - Upload and compress event images
- 📊 Data Export - Export event data to CSV
- 📧 Email Notifications - Automated email system to receive tickets
- 📱 Progressive Web App - Mobile-friendly experience, can be installed as mobile app.
Experience Evently in action: Website
Get up and running in minutes with Docker:
Update your docker-compose.yml with your email and Google OAuth Client credentials. If omitted,
the application can still run, just that the authentication and email features won't work:
environment:
# ... other environment variables ...
Authentication__Google__ClientId: "your-google-client-id"
Authentication__Google__ClientSecret: "your-google-client-secret"
EmailSettings__ActualFrom: "[email protected]"
EmailSettings__SmtpPassword: "your-app-password"Then, run the container:
# Build and run with Docker Compose
docker-compose up --build
# Access the application
# Website: http://localhost:4000- Framework: .NET 10.0 with ASP.NET Core
- Language: C# 14.0
- UI Framework: Blazor Server components
- Architecture: Web API with MVC pattern
- Framework: React 19
- Language: TypeScript 5
- Routing: TanStack Router v1
- State Management: TanStack React Query v5
- Styling: Tailwind CSS 4 with DaisyUI 5
- Build Tool: Vite 7
- CI/CD: GitHub Actions
- Cloud: Azure
- IAC: Terraform
- .NET 10.0 SDK
- Node.js (with npm/pnpm)
- Docker (optional)
- pnpm
-
Clone the repository
git clone <repository-url> cd evently
-
Install dependencies
# Backend dependencies (if needed) dotnet restore # Frontend dependencies cd src/evently.client && pnpm install
-
Development Setup
# In one terminal make dev # In another terminal cd src/evently.client && pnpm run dev
The project includes a comprehensive testing setup:
- Testing Framework: Vitest 3.2.4
- React Testing: React Testing Library 16.3.0
- DOM Testing: Testing Library DOM 10.4.1
- User Interaction Testing: User Event 14.6.1
Run tests:
# Backend tests
dotnet test tests/Evently.Server.Test/
# Frontend tests
cd src/evently.client && pnpm testThe project maintains high code quality standards with:
- ESLint: JavaScript/TypeScript linting
- Prettier: Code formatting
- EditorConfig: Consistent coding styles
- TypeScript: Strong typing for frontend
- Vite: Fast development server and build tool
- Makefile: Standardized build commands
- Docker Compose: Development environment orchestration
The project follows a Feature Folder Structure or Vertical Slice Architecture pattern, organizing code by business features rather than technical layers. This approach encourages modularity and separation of concerns.
evently/
├── src/ # Source code
│ ├── evently.client/ # React frontend application
│ │ └── src/
│ │ ├── routes/ # Route-based feature organization
│ │ │ ├── login/ # Authentication features
│ │ │ ├── bookings/ # Booking management features
│ │ │ ├── gatherings/ # Event/gathering management features
│ │ │ ├── healthcheck/ # System health monitoring
│ │ │ └── ...
│ │ └── lib/ # Shared utilities and components
│ └── Evently.Server/ # .NET backend application
│ └── Common/ # Shared utilities and infrastructure
│ └── Features/ # Feature-based organization
│ ├── Accounts/ # User authentication & authorization
│ ├── Bookings/ # Booking system features
│ ├── Gatherings/ # Event management features
│ ├── Files/ # Blob Storage features
│ └── ...
├── tests/ # Test projects
│ └── Evently.Server.Test/ # Backend unit tests
├── deploy/ # Infrastructure and deployment
│ └── Terraform/ # Terraform infrastructure code
├── .github/ # GitHub Actions workflows
│ └── workflows/
│ ├── build.yml # CI pipeline
│ └── deploy.yml # Deployment pipeline
├── docker-compose.yml # Docker services configuration
└── Makefile # Build automation