Yksinkertainen mutta tuotantotapainen tapahtumahallinnan sovellus (.NET 8, .NET MAUI/Windows, SQLite, EF Core, MVVM).
- Arkkitehtuuri
- Vaatimukset ja asennus
- Ajaminen (Windows)
- Tietokanta ja migraatiot
- Lokitus
- Laatu: koodi, testit ja tyyli
- Projektinhallinta ja dokumentaatio
- Julkaisu (valinnainen)
- Tunnetut rajoitteet ja jatkokehitys
- Lisenssi
Kerrokset
- Tapahtumahubi.Domain – entiteetit ja validoinnit (
Event,Participant). - Tapahtumahubi.Infrastructure – EF Core + SQLite:
AppDbContext, migraatiot (Migrations/), siemendata, kyselyt. KäyttääIDbContextFactory<AppDbContext>. - Tapahtumahubi.App – .NET MAUI UI (MVVM): ViewModelit ja XAML-näkymät. DI-rekisteröinti
MauiProgram.cs:ssä. Serilog lokitukseen. - Tapahtumahubi.Tests – xUnit-testit domainille ja peruspoluille.
UX
- Välilehdet: Tapahtumat ja Kalenteri.
- Uusi/Muokkaa: otsikko, sijainti, päivä, aika, kuvaus, maks. osallistujat.
- Osallistujat: sähköposti uniikki per tapahtuma; kapasiteettiraja huomioidaan.
- Windows 10 2004 / 11 (build 19041+)
- .NET 8 SDK (ja Desktop Runtime)
- (Suositus) EF Core Tools:
dotnet tool install --global dotnet-ef
git clone https://github.com/AleksanteriLohja/Tapahtumahubi.git cd Tapahtumahubi dotnet restore
dotnet build src/Tapahtumahubi.App/Tapahtumahubi.App.csproj -f net8.0-windows10.0.19041.0 dotnet run --project src/Tapahtumahubi.App/Tapahtumahubi.App.csproj -f net8.0-windows10.0.19041.0
Ensimmäinen ajo luo paikallisen SQLite-tietokannan: %LocalAppData%\Tapahtumahubi.App\app.db
Migraatiot: src/Tapahtumahubi.Infrastructure/Migrations.
dotnet ef database update
--project src/Tapahtumahubi.Infrastructure
--startup-project src/Tapahtumahubi.App
dotnet ef migrations add
--project src/Tapahtumahubi.Infrastructure
--startup-project src/Tapahtumahubi.App
Sovellus käyttää IDbContextFactory ja tallentaa tietokannan LocalApplicationData-kansioon.
Serilog kirjoittaa lokit: %LocalAppData%\Tapahtumahubi.App\logs\app-<päivä>.log
Laatu: koodi, testit ja tyyli
dotnet build -c Release
dotnet test --settings coverage.runsettings
Kattavuus: Coverlet (XPlat Code Coverage) + ReportGenerator (CI tuottaa HTML-raportin).
Varoitukset on nostettu virheiksi Directory.Build.props -tiedostossa.
Koodityyli: .editorconfig.
Projektikortti: docs/project-card.md
Vaatimukset: docs/vaatimukset.md
Arkkitehtuuri: docs/arkkitehtuuri.md
Testaus: docs/testaus.md
Käyttöohje: docs/kayttoohje.md
Git & release -käytännöt: docs/git_ja_release.md
Riskit ja rajaukset: docs/riskit_ja_rajaus.md
Projektisuunnitelma (roolit, sprintit, DoD): docs/projektisuunnitelma.md
AI-käyttö: docs/AI-kaytto.md
Unpackaged (kansioon)
PowerShell (yksi rivi): dotnet publish src/Tapahtumahubi.App -c Release -f net8.0-windows10.0.19041.0 -r win10-x64 -o publish/win
PowerShell (monirivinen, käyttäen ^): dotnet publish src/Tapahtumahubi.App ^ -c Release ^ -f net8.0-windows10.0.19041.0 ^ -r win10-x64 ^ -o publish/win
HUOM: Androidin JDK-virheilmoitukset eivät liity tähän, kun rakennat vain Windows-TFM:lle.
MSIX (pipeline-esimerkki ja ohjeet: docs/git_ja_release.md)
Projekti optimoitu Windowsille; muut alustat skelettona.
Jatkokehitys: suodattimet/haku, CSV/ICS-vienti, osallistujahallinnan laajennus, VM-virhepolkujen testit.
MIT

