Add LICENSE and README files with project details and MIT License
This commit is contained in:
150
SISTEMA.md
Normal file
150
SISTEMA.md
Normal 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.
|
Reference in New Issue
Block a user