Ett komplett Event Management-system byggt med Blazor, WebAPI och Entity Framework Core.
Detta projekt är ett komplett Event Management-system som låter användare bläddra bland, visa detaljer om och hantera evenemang. Systemet innehåller administrativa funktioner för att skapa, redigera och ta bort evenemang.
- Frontend: Blazor Server
- Backend: ASP.NET Core WebAPI
- Dataaccess: Entity Framework Core med SQL Server
- Autentisering: Cookie-based authentication
- Styling: Bootstrap 5 + Bootstrap Icons
TicketToCode/
├── TicketToCode.Core/ # Core models och services
│ ├── Models/ # Event, User models
│ ├── Data/ # ApplicationDbContext
│ └── Services/ # AuthService
├── TicketToCode.Api/ # WebAPI backend
│ └── Endpoints/ # API endpoints (Auth, Event)
└── TicketToCode.Blazor/ # Blazor Server frontend
├── Components/Pages/ # Razor pages
└── Services/ # API service, Auth state
- ✅ Bläddra bland evenemang
- ✅ Visa detaljerad information om evenemang
- ✅ Registrera nytt konto
- ✅ Logga in/logga ut
- ✅ Skapa nya evenemang
- ✅ Redigera befintliga evenemang
- ✅ Ta bort evenemang
- .NET 9.0 SDK
- SQL Server (LocalDB fungerar)
- Visual Studio 2022 eller VS Code
-
Klona repositoryt
git clone <repository-url> cd TicketToCode
-
Återställ NuGet-paket
dotnet restore
-
Uppdatera databasen Databasen skapas automatiskt vid första körningen med
EnsureCreated(). -
Konfigurera API URL Uppdatera
appsettings.jsoni Blazor-projektet med rätt API-URL:{ "ApiBaseUrl": "https://localhost:7206" } -
Kör projektet
Alternativ 1: Kör båda projekt separat
# Terminal 1 - API cd TicketToCode.Api dotnet run # Terminal 2 - Blazor cd TicketToCode.Blazor dotnet run
Alternativ 2: Kör från solution
dotnet run --project TicketToCode.Api dotnet run --project TicketToCode.Blazor
-
Öppna i webbläsaren
- API Swagger:
https://localhost:7206/swagger - Blazor App:
https://localhost:7204
- API Swagger:
POST /auth/login- Logga inPOST /auth/register- Registrera ny användare
GET /events- Hämta alla evenemangGET /events/{id}- Hämta specifikt evenemangPOST /events- Skapa nytt evenemang (kräver autentisering)PUT /events/{id}- Uppdatera evenemang (kräver autentisering)DELETE /events/{id}- Ta bort evenemang (kräver autentisering)
- Id (int)
- Name (string)
- Description (string)
- Type (EventType enum: Concert, Festival, Theatre, Other)
- StartTime (DateTime)
- EndTime (DateTime)
- MaxAttendees (int)
- CreatedAt (DateTime)
- CreatedBy (string)
- Id (int)
- Username (string)
- PasswordHash (string)
- Role (string: "Admin" eller "User")
- CreatedAt (DateTime)
För att skapa en admin-användare, kör följande SQL i databasen:
-- Först registrera dig via UI, sedan uppdatera rollen:
UPDATE Users SET Role = 'Admin' WHERE Username = 'ditt_användarnamn';När du vill använda migrations istället för EnsureCreated():
cd TicketToCode.Core
dotnet ef migrations add InitialCreate --startup-project ../TicketToCode.Api
dotnet ef database update --startup-project ../TicketToCode.Api- Bokningar/biljetter är inte implementerade ännu
- Användarhantering (redigera/ta bort) saknas
- Statistik över bokningar saknas
- CORS är konfigurerad för development - uppdatera för production
- Implementera bokningssystem
- Användarhantering för admin
- Sökfunktion för evenemang
- Filtrering och sortering
- Statistik och rapporter
- Email-notifikationer
- Bilduppladdning för evenemang
Detta projekt är skapat för utbildningssyfte.
Detta är ett skolprojekt. För frågor, kontakta projektägaren.