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) |
| 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 |
| 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ı: eslint → tsc --noEmit → vitest run --coverage → vite build → SonarQube.
Herhangi bir adım fail ederse pipeline durur.