This repository has been archived on 2025-08-13. You can view files and clone it, but cannot push or open issues or pull requests.
Files
KTUSA-PS/SISTEMA.md

151 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.