A robust and scalable REST API backend for event management, built with ASP.NET Core 8.0. This solution empowers event organizers with seamless event creation, user registration, payment processing, and real-time notifications.
- π Event Management: Create, update, delete, and list events with detailed metadata.
- π User Authentication & Authorization: Secure access with JWT-based authentication and role-based permissions.
- π³ Payment Integration: Seamless transactions via Stripe and PayPal.
- π Google Authentication: Enable users to sign in with their Google accounts.
- π© Email Notifications: Automated email updates for event registrations and status changes.
- π’ Real-time Updates: Powered by SignalR for instant event notifications.
- π API Versioning: Maintain backward compatibility with multiple API versions.
- π Rate Limiting: Prevent abuse by enforcing request limits.
- π Structured Logging: Enhanced debugging with Serilog.
- π Interactive API Docs: Swagger-based documentation for easy API exploration.
| Category | Technology |
|---|---|
| Framework | ASP.NET Core 8.0 |
| Database | PostgreSQL (EF Core 9.0) |
| Auth | JWT + Google OAuth |
| Validation | FluentValidation |
| API Docs | Swagger/OpenAPI |
| Payments | Stripe, PayPal |
| Real-time | SignalR |
| Logging | Serilog |
| Env Config | DotNetEnv |
- Install .NET 8.0 SDK
- Set up a PostgreSQL database
- Register for Stripe/PayPal accounts (for payments)
- Create a Google Developer Console project (for OAuth sign-in)
- Configure SMTP server (for email notifications)
Update appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=EventManagementDB;Username=your_username;Password=your_password"
}Create a .env file in the root directory:
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
"EmailSettings": {
"SmtpServer": "your_smtp_server",
"SmtpPort": 587,
"SmtpUsername": "your_email",
"SmtpPassword": "your_password",
"SenderEmail": "your_email",
"SenderName": "Your Sender Name"
}"Stripe": {
"SecretKey": "your_stripe_secret_key",
"PublishableKey": "your_stripe_publishable_key",
"WebhookSecret": "your_stripe_webhook_secret"
}# Clone the repository
git clone https://github.com/your-repo/event-management-server.git
cd event-management-server
# Run database migrations
dotnet ef database update
# Start the application
dotnet runAccess API documentation at: https://localhost:5001/swagger
| Endpoint | Description |
|---|---|
/api/auth |
Authentication & User Registration |
/api/users |
User Management |
/api/events |
Event CRUD Operations |
/api/categories |
Event Categories |
/api/tickets |
Ticket Management |
/api/registrations |
User Registrations |
/api/payment |
Payment Processing |
/api/notifications |
Notification Handling |
/api/contacts |
Contact Form Management |
/api/feedback |
User Feedback Collection |
/api/comments |
Comment System |
For a full list of endpoints and request details, refer to the Swagger API documentation.
π EventManagementServer
βββ π Controllers # API controllers
βββ π Models # Data models
βββ π Data # Database context & migrations
βββ π Services # Business logic
βββ π Repositories # Data access logic
βββ π DTOs # Data Transfer Objects
βββ π Validators # FluentValidation logic
βββ π Helpers # Utility functions
βββ π Interfaces # Abstraction layers
βββ π Configurations # Application settings
β
JWT Authentication with expiration handling
β
Role-based Authorization for restricted access
β
Rate Limiting to prevent excessive API calls
β
Input Validation using FluentValidation
β
HTTPS Enforcement for secure communication
We welcome contributions! π Follow these steps:
- Fork the repository.
- Create a new feature branch.
- Commit your changes with clear messages.
- Submit a pull request (PR).
This project is licensed under the MIT License. See the LICENSE file for more details.
π‘ Building the future of event managementβone API at a time!