Add LICENSE and README files with project details and MIT License

This commit is contained in:
2025-08-13 11:23:27 +03:00
parent 8f4c0688f7
commit 948ffc0cbb
3 changed files with 324 additions and 0 deletions

150
SISTEMA.md Normal file
View File

@@ -0,0 +1,150 @@
# 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.