151 lines
5.9 KiB
Markdown
151 lines
5.9 KiB
Markdown
# 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
|
||
1. **Problemų registravimas** – studentai gali pateikti problemas sistemoje
|
||
2. **Problemų tipų pasirinkimas** – galimybė klasifikuoti problemas pagal tipus
|
||
3. **Atsiliepimų teikimas** – galimybė komentuoti ir vertinti sprendimus
|
||
|
||
### Administratoriams
|
||
1. **Problemų valdymas** – peržiūrėti, redaguoti ir spręsti pateiktas problemas
|
||
2. **Problemų tipų administravimas** – kurti ir tvarkyti problemų kategorijas
|
||
3. **Publikavimo kontrolė** – spręsti, kurios problemos ir sprendimai bus viešai matomi
|
||
4. **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
|
||
|
||
1. **Azure AD integracija** – autentifikacija per Microsoft Active Directory
|
||
2. **Vaidmenų sistema** – atskirtos administratorių ir paprastų naudotojų teisės
|
||
3. **JWT tokenų validacija** – saugus API prieigos kontrolės mechanizmas
|
||
4. **HTTPS privalomumas** – saugus duomenų perdavimas
|
||
5. **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 pat `appsettings.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
|
||
```bash
|
||
cd KTUSAPS
|
||
dotnet restore
|
||
dotnet run
|
||
```
|
||
|
||
### Kliento dalies paleidimas
|
||
```bash
|
||
cd KTUSAPS/ClientApp
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
### Duomenų bazės konfigūracija
|
||
1. Sukurkite MySQL duomenų bazę
|
||
2. Atnaujinkite prisijungimo eilutę (connection string) faile `appsettings.json`
|
||
3. Paleiskite migracijas:
|
||
```bash
|
||
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.
|