Codebase Analysis
Lines of code, complexity, git activity, and project structure metrics
Total LOC
352.8K
2,527 files ยท +16.2K generated
Production Code
190.0K
1,681 files ยท excl. generated
Test / Code Ratio
0.86x
162.8K test LOC
Tech Debt
13d
0.30% debt ratio
Duplication
3.80%
3,718 duplicated lines
Commits (30d)
171
7 contributors
๐ Lines of Code by Language
| Language | Files | Code | Comment | Blank | % of Total |
|---|---|---|---|---|---|
| TypeScript | 1,189 | 187,941 | 28,872 | 32,244 | 53.3% |
| Java | 1,003 | 113,922 | 33,502 | 23,385 | 32.3% |
| Swift | 193 | 15,585 | 3,833 | 3,358 | 4.4% |
| YAML | 2 | 10,099 | 30 | 543 | 2.9% |
| Bourne Shell | 67 | 8,004 | 1,586 | 1,718 | 2.3% |
| JavaScript | 27 | 5,478 | 1,495 | 990 | 1.6% |
| HTML | 12 | 3,391 | 93 | 230 | 1% |
| CSS | 8 | 2,959 | 155 | 541 | 0.8% |
| JSON | 7 | 2,087 | 0 | 0 | 0.6% |
| Python | 5 | 1,604 | 414 | 393 | 0.5% |
| SQL | 5 | 1,017 | 272 | 122 | 0.3% |
| Markdown | 6 | 679 | 0 | 256 | 0.2% |
| XML | 2 | 55 | 3 | 0 | 0% |
| SVG | 1 | 5 | 0 | 3 | 0% |
| Total | 2,527 | 352,826 | 70,255 | 63,783 | 100% |
๐ Language Distribution
๐๏ธ Code by Layer / Zone
| Zone | Prod LOC | Prod Files | Test LOC | Test Files | Total LOC | Test/Code Ratio |
|---|---|---|---|---|---|---|
| Backend Services | 52,648 | 700 | 61,274 | 303 | 113,922 | 1.16x |
| Web Frontend | 80,503 | 629 | 88,640 | 463 | 169,143 | 1.10x |
| Infrastructure (CDK) | 10,107 | 52 | 6,892 | 30 | 16,999 | 0.68x |
| Companion Apps | 34,490 | 213 | 6,016 | 50 | 40,506 | 0.17x |
| Scripts & Automation | 12,256 | 87 | 0 | 0 | 12,256 | 0.00x |
| Generated Code (OpenAPI Types)auto-generated | 16,209 | 18 | 0 | 0 | 16,209 | โ |
๐ SonarCloud Quality Metrics
| Metric | Value |
|---|---|
| Cyclomatic Complexity | 11,116 |
| Cognitive Complexity | 5,467 |
| Code Smells | 915 |
| Bugs | 13 |
| Duplicated Blocks | 183 |
| Technical Debt | 13d |
| Coverage (SonarCloud) | 60.10% |
๐ Git Activity
| Total Commits | 1,743 |
| Commits (last 30 days) | 171 |
| Commits (last 90 days) | 458 |
| Contributors | 7 |
| First Commit | 2018-11-04 |
| Last Commit | 2026-06-30 |
๐ฅ Most Changed Files (Hotspots)
| File | Changes |
|---|---|
| services/event-management-service/src/main/java/ch/batbern/events/controller/EventController.java | 69 |
| web-frontend/src/types/generated/events-api.types.ts | 64 |
| web-frontend/src/App.tsx | 46 |
| api-gateway/src/main/java/ch/batbern/gateway/config/SecurityConfig.java | 42 |
| services/event-management-service/src/main/java/ch/batbern/events/config/SecurityConfig.java | 41 |
| web-frontend/vite.config.ts | 41 |
| services/event-management-service/src/test/java/ch/batbern/events/controller/EventControllerIntegrationTest.java | 38 |
| services/event-management-service/src/main/java/ch/batbern/events/exception/GlobalExceptionHandler.java | 38 |
| api-gateway/src/main/java/ch/batbern/gateway/routing/DomainRouter.java | 35 |
| infrastructure/lib/stacks/event-management-stack.ts | 33 |
| infrastructure/bin/batbern-infrastructure.ts | 32 |
| services/company-user-management-service/src/main/java/ch/batbern/companyuser/service/UserService.java | 31 |
| web-frontend/src/components/organizer/SpeakerStatus/SpeakerStatusLanes.tsx | 30 |
| web-frontend/src/pages/public/HomePage.tsx | 29 |
| infrastructure/lib/stacks/frontend-stack.ts | 28 |
Weekly Commit Activity (12 weeks)
๐ฌ TODO / FIXME Comments
4,010
TODO: 2609
FIXME: 6
HACK: 5
XXX: 1385
NOSONAR: 5
๐๏ธ DB Migrations (Flyway)
144 migrations
| Service | Migrations | Latest V |
|---|---|---|
| event-management-service | 115 | V123 |
| company-user-management-service | 18 | V20 |
| partner-coordination-service | 10 | V10 |
| shared-kernel | 1 | V1 |
๐ฆ Dependencies per Module
Total: 5,269 direct dependencies across all modules
| Module | Type | Prod Deps | Dev/Test Deps | Total |
|---|---|---|---|---|
| @batbern/web-frontend | node | 62 | 46 | 108 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| @batbern/web-frontend | node | 61 | 46 | 107 |
| shared-kernel | java | 29 | 12 | 41 |
| batbern | node | 23 | 17 | 40 |
| api-gateway | java | 20 | 11 | 31 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-infrastructure | node | 7 | 22 | 29 |
| batbern-public | node | 18 | 9 | 27 |
| batbern-projectdoc | node | 25 | 1 | 26 |
| event-management-service | java | 20 | 0 | 20 |
| company-user-management-service | java | 16 | 2 | 18 |
| partner-coordination-service | java | 10 | 3 | 13 |
| @batbern/migration-analysis | node | 2 | 8 | 10 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| image-resize | node | 2 | 2 | 4 |
| github-issues-integration | node | 3 | 1 | 4 |
| speaker-coordination-service | java | 2 | 0 | 2 |
| attendee-experience-service | java | 0 | 0 | 0 |