ICOSYS Documentation¶
Türkçe
ICOSYS, sıfır-boilerplate, properties-driven Dynamic CRUD motoru üzerine kurulu bir enterprise Java platformudur. Bu dokümantasyon platformun mimarisini, kurallarını ve geliştirici rehberlerini içerir.
What is ICOSYS?¶
ICOSYS is a zero-boilerplate enterprise platform built on a Dynamic CRUD engine. It provides a unified architecture for building business modules (BPM, DMS, etc.) with a React SPA frontend and multiple Spring Boot microservices.
┌─────────────────────────────────┐
│ React SPA (Vite) │ Port 5173
├──────────┬──────────┬───────────┤
│ ICGLB │ BPM │ DMS │ Ports 8010 / 8020 / 8030
├──────────┴──────────┴───────────┤
│ MySQL 8 │ Per-module schema
└─────────────────────────────────┘
Quick Navigation¶
:material-rocket-launch: Getting Started¶
New to the project? Start here.
- Installation — Environment setup and prerequisites
- Quick Start — Run the platform locally
- First Module — Create your first backend module
:material-sitemap: Architecture¶
Understand how the system is designed.
- Overview — Services, ports, layers, and cross-cutting concerns
- Tech Stack — All frameworks, libraries, and versions
- Dependencies — Full dependency matrix (backend + frontend)
- Security — Authentication, authorization, rate limiting
- Project Structure — Repository layout and module organization
- Deployment — Environment configuration and deployment
:material-cog: Framework¶
How the CRUD engine and config-driven system works.
- CRUD Engine — AbstractCrudService, lifecycle hooks, converters
- Config-Driven UI — Properties-based UI generation
- SubHandler Pattern — Nested entity management
- Field Types — Supported field types and rendering
- Permissions — RBAC, owner/admin bypass, role extraction
:material-package-variant: Modules¶
Business domain documentation.
- BPM — Business Partner Management (partners, branches, contracts, accruals)
- DMS — Document Management (upload, download, sharing, metadata)
- ICM Account — Account and user management
:material-api: API¶
REST API reference and integration.
- REST API — Endpoint patterns, request/response formats
- Authentication — JWT flow, API keys, session management
- Error Codes — IC-* error code registry and handling
:material-check-decagram: Standards¶
Coding rules that every contributor must follow.
- Coding Standards — Java + TypeScript patterns, SonarQube Grade A rules
- Naming Conventions — Classes, methods, DB tables, React files, API URLs
- Git Workflow — Branching strategy and commit conventions
- Release Process — Versioning and deployment pipeline
:material-book-open-variant: Guides¶
Step-by-step how-to guides.
- New Module — Scaffold a new backend module from scratch
- New Entity — Add an entity to an existing module
- Deployment — Deploy to test/production environments
Tech at a Glance¶
| Layer | Stack |
|---|---|
| Frontend | React 19, TypeScript 5.9, Vite 7, Tailwind CSS 4, Zustand 5, TanStack Table |
| Backend | Spring Boot 3.5, Java 21, Hibernate 6, MySQL 8 |
| Security | JWT (JJWT 0.12), Bucket4j rate limiting, Spring Security |
| Quality | SonarQube, ESLint, Vitest, GitHub Actions CI |
Services¶
| Service | Port | Purpose |
|---|---|---|
| ICGLB | 8010 | Core platform — auth, users, accounts, config |
| BPM | 8020 | Business Partner Management |
| DMS | 8030 | Document Management |
| React SPA | 5173 | Frontend (dev) |