5.9 KiB
5.9 KiB
KTUSA Problemų Sistema (KTUSA-PS)
Apžvalga
KTUSA-PS yra KTU SA (Kauno technologijos universiteto Studentų atstovybės) problemų sprendimo sistema – internetinė platforma, skirta studentų problemų registravimui, tvarkymui ir sprendimui.
Technologijų rinkinys
Backend (.NET)
- Framework: ASP.NET Core (C#)
- Duomenų bazė: MySQL su Entity Framework Core
- Autentifikacija: Microsoft Azure Active Directory (MSAL) su JWT Bearer autentifikacija
- API: RESTful API su Swagger dokumentacija
- Architektūra: MVC pattern su atskirtu duomenų sluoksniu
Frontend (Vue.js)
- Framework: Vue.js 3 su Composition API
- Maršrutizacija: Vue Router 4
- Būsenos valdymas: Vuex 4
- UI Framework: Bootstrap 5 su Bootstrap Icons
- Build Tool: Vite
- HTTP klientas: Axios
- Autentifikacija: Azure MSAL Browser
Pagrindinės funkcijos
Studentams
- Problemų registravimas – studentai gali pateikti problemas sistemoje
- Problemų tipų pasirinkimas – galimybė klasifikuoti problemas pagal tipus
- Atsiliepimų teikimas – galimybė komentuoti ir vertinti sprendimus
Administratoriams
- Problemų valdymas – peržiūrėti, redaguoti ir spręsti pateiktas problemas
- Problemų tipų administravimas – kurti ir tvarkyti problemų kategorijas
- Publikavimo kontrolė – spręsti, kurios problemos ir sprendimai bus viešai matomi
- Atsiliepimų moderavimas – tvarkyti naudotojų atsiliepimus
Duomenų modelis
Pagrindinės esybės
- Issue – problemų registravimas su aprašymu, tipu ir sprendimo būsena
- IssueType – problemų kategorijos (dvikalbės: LT/EN)
- PublishedProblem – viešai publikuojamos problemos
- PublishedFeedback – viešai publikuojami atsiliepimai
- Admin – administratorių vaidmenys
- Vote – balsavimo / vertinimo sistema
Saugumo funkcijos
- Azure AD integracija – autentifikacija per Microsoft Active Directory
- Vaidmenų sistema – atskirtos administratorių ir paprastų naudotojų teisės
- JWT tokenų validacija – saugus API prieigos kontrolės mechanizmas
- HTTPS privalomumas – saugus duomenų perdavimas
- Lokalizuoti saugumo perspėjimai – naudotojų informavimas apie nesaugius ryšius
Architektūros ypatybės
- SPA (Single Page Application) – Vue.js kliento dalis su ASP.NET Core serverio dalimi
- RESTful API – aiškiai struktūrizuotas API dizainas
- Mikroservisų elementai – atskirtas duomenų sluoksnis (
KTUSAPS.Data
) - Lokalizacija – dvi kalbos (lietuvių ir anglų)
- Prisitaikantis dizainas – sukurtas su Bootstrap, pritaikytas mobiliesiems įrenginiams
Projekto struktūra
KTUSA PS.sln # Visual Studio solution failas
├── KTUSAPS/ # Pagrindinis web aplikacijos projektas
│ ├── Controllers/ # API kontroleriai
│ │ ├── IssuesController.cs # Problemų valdymo API
│ │ ├── IssueTypesController.cs # Problemų tipų API
│ │ └── ...
│ ├── ClientApp/ # Vue.js frontend aplikacija
│ │ ├── src/
│ │ │ ├── components/ # Vue komponentai
│ │ │ ├── pages/ # Puslapių komponentai
│ │ │ ├── router/ # Maršrutizacijos konfigūracija
│ │ │ └── store/ # Vuex būsenos valdymas
│ │ ├── package.json
│ │ └── vite.config.js
│ ├── Auth/ # Autentifikacijos logika
│ ├── Services/ # Verslo logikos servisai
│ └── Program.cs # Aplikacijos entry point
└── KTUSAPS.Data/ # Duomenų sluoksnis
├── Model/ # Entity Framework modeliai
├── Migrations/ # Duomenų bazės migracijos
└── SAPSDataContext.cs # DbContext
Diegimas ir konfigūracija
- Konfigūracijos failai –
appsettings.json
(taip patappsettings.Development.json
vystymui) - Parengta naudoti su Docker – tiek Vite, tiek .NET Core dalims
- Duomenų bazės migracijos – valdomos per Entity Framework Core migracijas
- Swagger dokumentacija – automatiškai generuojama API dokumentacija
Paleidimo instrukcijos
Reikalavimai
- .NET 6.0 arba naujesnis
- Node.js 16+ ir npm
- MySQL serveris
Serverio dalies paleidimas
cd KTUSAPS
dotnet restore
dotnet run
Kliento dalies paleidimas
cd KTUSAPS/ClientApp
npm install
npm run dev
Duomenų bazės konfigūracija
- Sukurkite MySQL duomenų bazę
- Atnaujinkite prisijungimo eilutę (connection string) faile
appsettings.json
- Paleiskite migracijas:
dotnet ef database update
Pagrindinės sistemos dalys
Autentifikacija
Sistema naudoja Microsoft Azure Active Directory autentifikaciją. Vartotojai prisijungia per savo institucijos paskyrą, o sistema automatiškai nustato jų teises.
Problemų valdymas
- Studentai gali registruoti problemas per intuityvią formą
- Administratoriai gali peržiūrėti visas problemas ir jas administruoti
- Problemos gali būti skirstomos į tipus ir kategorijas
Publikavimo sistema
- Administratoriai sprendžia, kurios problemos ir sprendimai bus viešai matomi
- Publikuotos problemos tampa matomos visiems sistemos naudotojams
- Atsiliepimų sistema leidžia vertinti sprendimų kokybę
Saugumas ir privatumas
- Visi duomenys perduodami per HTTPS
- Vartotojų duomenys saugomi pagal GDPR reikalavimus
- Prieiga prie administratoriaus funkcijų griežtai kontroliuojama
- Sistema perspėja apie nesaugius ryšius ar lokalų paleidimą
Sistema sukurta siekiant pagerinti KTU studentų problemų sprendimo procesus, užtikrinant skaidrumą, efektyvumą ir saugumą visame problemų valdymo cikle.