Skip to content

Tech Stack

Türkçe

Bu sayfa ICOSYS platformunda kullanılan tüm teknolojileri, framework'leri ve araçları listeler. Veriler doğrudan pom.xml ve package.json dosyalarından çıkarılmıştır.

Overview

ICOSYS is built as a microservices-based enterprise platform with a clear separation between a React SPA frontend and multiple Spring Boot backend services.

┌─────────────────────────────┐
│   React SPA (Port 5173)     │  ← Frontend
├─────────────────────────────┤
│        Axios / REST         │  ← HTTP + JWT
├──────┬──────────┬───────────┤
│ ICGLB│   BPM    │    DMS    │  ← Backend Services
│ 8010 │   8020   │   8030    │
├──────┴──────────┴───────────┤
│      MySQL 8 (per schema)   │  ← Database
└─────────────────────────────┘

Backend

Runtime & Language

Technology Version Purpose
Java 21 (LTS) Language runtime
Spring Boot 3.5.6 Application framework
Jakarta EE 10 Enterprise APIs (Persistence, Validation)

Core Frameworks

Framework Version Purpose
Spring Web MVC 3.5.6 REST controllers, request handling
Spring Data JPA 3.5.6 Repository abstraction, Specification queries
Spring Security 3.5.6 Authentication, authorization, CORS
Spring AOP 3.5.6 Cross-cutting concerns
Spring Validation 3.5.6 Bean validation (Jakarta Validation 3.0.2)
Spring Actuator 3.5.6 Health checks, monitoring endpoints
Spring Artemis 3.5.6 JMS messaging (ActiveMQ Artemis)

ORM & Database

Technology Version Purpose
Hibernate ORM 6.6.29.Final JPA implementation
Jakarta Persistence API 3.1.0 Entity mapping annotations
MySQL Connector/J (managed) JDBC driver
HikariCP (managed) Connection pooling

Türkçe

Her servis modülü kendi MySQL şemasını kullanır: icglb2, icbpm, icdms. DDL yönetimi validate modundadır — Hibernate tablo oluşturmaz, sadece doğrular.

Authentication & Security

Library Version Purpose
JJWT (jjwt-api + impl + jackson) 0.12.5 JWT token creation & validation
Bucket4j 8.10.1 Rate limiting (per-endpoint)
Spring Security Crypto (managed) BCrypt password hashing

Utilities

Library Version Purpose
Lombok 1.18.32 Boilerplate reduction (@Builder, @Getter, @Slf4j)
SLF4J 2.0.16 Logging facade
Jackson 2.18.0 JSON serialization/deserialization
Commons Lang3 3.17–3.18 String utilities, null-safe helpers
Commons Collections4 4.4 Advanced collection operations
Commons IO 2.15.1 File and stream utilities

DMS-Specific

Library Version Purpose
Apache PDFBox 3.0.4 PDF text extraction
Apache POI 5.3.0 DOCX/XLSX text extraction

Build & Quality

Tool Version Purpose
Maven 3.x Build system
Maven Compiler Plugin 3.12.1 Java 21 compilation
SonarQube Scanner 4.0–5.0 Static code analysis
Spring Boot Maven Plugin (managed) Fat JAR packaging
Nexus - Private Maven repository

Testing

Library Version Purpose
Spring Boot Starter Test (managed) JUnit 5, Mockito, AssertJ
Spring REST Docs MockMvc (managed) API documentation from tests

Frontend

Core

Technology Version Purpose
React 19.2.0 UI library
TypeScript 5.9.3 Type-safe JavaScript
Vite 7.3.1 Build tool & dev server

UI & Styling

Library Version Purpose
Tailwind CSS 4.1.18 Utility-first CSS framework
shadcn/ui - Reusable component primitives
Lucide React 0.563.0 Icon library
class-variance-authority 0.7.1 Component variant management
clsx 2.1.1 Conditional className builder
tailwind-merge 3.4.0 Tailwind class conflict resolution

State & Routing

Library Version Purpose
Zustand 5.0.11 Lightweight state management
React Router DOM 7.13.0 Client-side routing (data router)

Forms & Validation

Library Version Purpose
React Hook Form 7.71.1 Performant form handling
@hookform/resolvers 5.2.2 Schema validation bridge
Zod 4.3.6 Schema validation library

HTTP & API

Library Version Purpose
Axios 1.13.5 HTTP client with interceptors

Data Display

Library Version Purpose
TanStack React Table 8.21.3 Headless table with sorting, filtering, pagination

Other

Library Version Purpose
Sonner 2.0.7 Toast notifications
react-google-recaptcha-v3 1.11.0 Bot protection for public forms

Dev Tooling

Tool Version Purpose
ESLint 9.39.1 Linting (with React Hooks + Refresh plugins)
Vitest 4.0.18 Unit testing (Vite-native)
@testing-library/react 16.3.2 Component testing utilities
@vitest/coverage-v8 4.0.18 Code coverage reporting
jsdom 28.0.0 Browser environment for tests

CI/CD

Tool Purpose
GitHub Actions Lint → TypeScript check → Test/Coverage → Build → SonarQube
SonarQube Static analysis + coverage tracking

Türkçe

Frontend CI pipeline sırası: eslinttsc --noEmitvitest run --coveragevite build → SonarQube. Herhangi bir adım fail ederse pipeline durur.