FaultStream, Spring Boot ve Next.js ile gelistirilmis bir endustriyel izleme projesidir. Bu repo su anda tek bir demo akisinda uca uca calisiyor:
- auth
- equipment ve sensor yonetimi
- sensor simulatoru ve ingestion
- dashboard terminal snapshot API
- alert, work-order ve maintenance log akisi
- Swagger UI
- temel unit ve integration testleri
Bu README, projeyi sifirdan alan birinin repo'yu lokalinde kaldirabilmesi icin yazildi.
Java 21DockerDocker ComposeNode.js 20+
Notlar:
- Repo icinde
mvnwvemvnw.cmdvar; sistemde Maven kurulu olmasi gerekmiyor. - PostgreSQL host makinede
5433portuna acilir. - En hizli lokal kurulum icin
localprofili kullanilabilir; bu profil demo JWT secret, demo data ve simulator ayarlarini hazir getirir. - Ortam degiskenlerini elle yonetmek istersen
.env.examplevefaultstream-dashboard/.env.local.exampledosyalarini referans al.
Frontend dizininde:
Copy-Item faultstream-dashboard/.env.local.example faultstream-dashboard/.env.localdocker compose up -d
docker compose psBeklenen servisler:
postgreszookeeperkafkaredis
En rahat lokal gelistirme yolu:
Windows PowerShell:
.\mvnw.cmd spring-boot:run "-Dspring-boot.run.profiles=local"macOS / Linux:
./mvnw spring-boot:run -Dspring-boot.run.profiles=localOrtam degiskenlerini kendin yonetmek istersen standart profil ile de calistirabilirsin:
Windows PowerShell:
.\mvnw.cmd spring-boot:runmacOS / Linux:
./mvnw spring-boot:runBackend ana adresi:
http://localhost:8080
Swagger UI:
http://localhost:8080/swagger-ui.html
Dashboard snapshot:
http://localhost:8080/api/v1/dashboard/terminal
Set-Location faultstream-dashboard
npm install
npm run devFrontend adresi:
http://localhost:3000
local profili ile acildiginda:
- demo user'lar seed edilir
- demo equipment ve sensor kayitlari seed edilir
- simulator acik gelir
- sensor reading'ler once Kafka'ya gonderilmeye calisir
- gerekli oldugunda direct persistence fallback devreye girer
- kritik reading'ler alert ve work-order uretebilir
- maintenance log API work-order ile bagli calisir
- dashboard backend'den gercek veri ceker
Demo kullanicilar:
admin@faultstream.localengineer@faultstream.localtechnician@faultstream.local- sifre:
Faultstream123!
Backend tarafinda kullanilan ana degiskenler:
DATABASE_URLDATABASE_USERDATABASE_PASSWORDKAFKA_BOOTSTRAP_SERVERSREDIS_HOSTREDIS_PORTJWT_SECRETSIMULATOR_ENABLEDSIMULATOR_INTERVAL_MSFAULTSTREAM_DEMO_DATA_ENABLEDFAULTSTREAM_PUBLIC_REGISTRATION_ENABLEDKAFKA_TOPIC_SENSOR_READINGS
Frontend tarafinda:
NEXT_PUBLIC_API_BASE_URL
Ornek dosyalar:
.env.examplefaultstream-dashboard/.env.local.example
Not:
- Root dizindeki
.envdosyasi Docker Compose ozellestirmesi icindir. - Spring Boot, terminale export edilmemis
.envdosyasini otomatik okumaz. - Bu nedenle sifirdan kurulumda
localprofili en sorunsuz secenektir.
Kurulumdan sonra su kontrolleri yap:
http://localhost:8080/swagger-ui.html
curl http://localhost:8080/api/v1/dashboard/terminalBeklenen alanlar:
success: truedata.statsdata.streamdata.patternAnalysisdata.frequencyDensity
http://localhost:3000
Beklenen gorunum:
SENSOR_LINK: LIVEveya kisa sureliDEGRADED- anomaly stream satirlari
- pie ve bar chart verileri
Public:
POST /api/v1/auth/registerPOST /api/v1/auth/loginGET /api/v1/dashboard/terminal
Equipment:
GET /api/v1/equipmentsPOST /api/v1/equipmentsGET /api/v1/equipments/{id}DELETE /api/v1/equipments/{id}
Sensor:
GET /api/v1/sensorsPOST /api/v1/sensorsGET /api/v1/sensors/{id}GET /api/v1/sensors/{id}/readings?last=100
Alert:
GET /api/v1/alertsGET /api/v1/alerts/activeGET /api/v1/alerts/{id}POST /api/v1/alerts/{id}/resolve
Work order:
GET /api/v1/work-ordersGET /api/v1/work-orders/{id}PUT /api/v1/work-orders/{id}/assignPUT /api/v1/work-orders/{id}/complete
Maintenance log:
GET /api/v1/maintenance-logsGET /api/v1/maintenance-logs/work-order/{workOrderId}POST /api/v1/maintenance-logs
Backend testleri:
Windows PowerShell:
.\mvnw.cmd testmacOS / Linux:
./mvnw testFrontend lint:
Set-Location faultstream-dashboard
npm run lintKontrol et:
JWT_SECRETtanimli mi- local profil ile aciliyorsa komutta
spring-boot.run.profiles=localgecti mi docker compose psicindepostgresayakta mi5433portu dolu mu- daha once olusmus eski DB semasi varsa volume temizligi gerekiyor mu
Kontrol et:
SIMULATOR_ENABLED=trueFAULTSTREAM_DEMO_DATA_ENABLED=true- backend loglarinda hata var mi
http://localhost:8080/api/v1/dashboard/terminalveri donuyor mu
Kontrol et:
faultstream-dashboard/.env.localicindekiNEXT_PUBLIC_API_BASE_URL- backend
8080portunda mi - frontend
3000portunda mi
docker compose down -v
docker compose up -dBackend:
src/main/java/com/faultstream/commonsrc/main/java/com/faultstream/configsrc/main/java/com/faultstream/domainsrc/main/resources/db/migration
Frontend:
faultstream-dashboard/src/app
Dokumantasyon:
ROADMAP.mddocs/swot-analizi.mddocs/degisiklik-raporu.md