LavenderSpiritAPI to nowoczesne RESTful API stworzone w technologii ASP.NET Core 8, umożliwiające zarządzanie wolontariuszami, organizacjami oraz wydarzeniami. Projekt wspiera rejestrację, autoryzację, zarządzanie eventami i relacjami wiele-do-wielu pomiędzy użytkownikami a wydarzeniami.
- Funkcjonalności
- Technologie
- Wymagania
- Instalacja
- Konfiguracja
- Uruchomienie
- Struktura projektu
- Przykładowe endpointy
- Bezpieczeństwo
- Swagger / OpenAPI
- Autorzy
- Rejestracja i logowanie organizacji oraz wolontariuszy
- Zarządzanie wydarzeniami (tworzenie, usuwanie, pobieranie)
- Przypisywanie wolontariuszy do wydarzeń (relacja wiele-do-wielu)
- Przypisywanie wydarzeń do organizacji (relacja jeden-do-wielu)
- Walidacja danych wejściowych (DataAnnotations)
- Autoryzacja JWT
- Dokumentacja API (Swagger)
- .NET 8 (ASP.NET Core Web API)
- Entity Framework Core 9 (SQL Server)
- AutoMapper
- JWT Authentication
- Swagger (Swashbuckle)
- C# 12
- .NET 8 SDK
- SQL Server (np. LocalDB)
- Visual Studio 2022 lub nowszy
- Klonowanie repozytorium
- Przygotowanie bazy danych
- Upewnij się, że SQL Server jest uruchomiony.
- Skonfiguruj connection string w pliku
appsettings.jsonlubappsettings.Development.json:"ConnectionStrings": { "DefaultConnectionString": "Server=(localdb)\\mssqllocaldb;Database=LavenderSpiritDb;Trusted_Connection=True;" }
- Migracje bazy danych
- Pliki konfiguracyjne:
appsettings.json,appsettings.Development.json - Ustawienia JWT w sekcji
Authentication - Connection string w sekcji
ConnectionStrings
Aplikacja domyślnie uruchomi się na https://localhost:5001 lub http://localhost:5000.
Controllers/– kontrolery APIModels/– modele domenowe (np.Organization,LavEvent,Voluntree)DTOs/– obiekty transferowe (DTO)Services/– logika biznesowaData/– kontekst bazy danych (AppDbContext)Migrations/– migracje EF Core
POST /Organization– rejestracja organizacjiGET /Organization– lista organizacjiGET /Organization/{organizationID}– wydarzenia danej organizacji
POST /Voluntree– rejestracja wolontariusza
POST /Event/{userID}– utworzenie wydarzeniaGET /Event– lista wydarzeńGET /Event/{eventID}– szczegóły wydarzeniaDELETE /Event/{userID}/{eventID}– usunięcie wydarzenia
- Autoryzacja oparta o JWT Bearer
- Hasła przechowywane w postaci hashowanej (zalecane)
- Walidacja danych wejściowych
Po uruchomieniu aplikacji w trybie deweloperskim dokumentacja API dostępna jest pod {localhost}/swagger.
Projekt rozwijany w celach edukacyjnych i społecznych. Wszelkie uwagi i pull requesty są mile widziane!