You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -201,6 +204,7 @@ This API follows a **modular monolith** architecture:
201
204
│ team_goals │ Goal setting and tracking │
202
205
│ riot_integration │ Riot Games API integration │
203
206
│ competitive │ PandaScore integration, pro matches, draft analysis │
207
+
│ meta_intelligence │ Build aggregation, champion/item meta analytics │
204
208
│ scrims │ Scrim management and opponent team tracking │
205
209
│ strategy │ Draft planning and tactical board system │
206
210
│ support │ Support ticket system with staff dashboard and FAQ │
@@ -417,14 +421,15 @@ graph TB
417
421
418
422
**Key Architecture Principles:**
419
423
420
-
1.**Modular Monolith**: Each module is self-contained with its own controllers, models, and services
421
-
2.**API-Only**: Rails configured in API mode for JSON responses
422
-
3.**JWT Authentication**: Stateless authentication using JWT tokens
423
-
4.**Background Processing**: Long-running tasks handled by Sidekiq
424
-
5.**Caching**: Redis used for session management and performance optimization
425
-
6.**External Integration**: Riot Games API integration for real-time data
426
-
7.**Rate Limiting**: Rack::Attack for API rate limiting
427
-
8.**CORS**: Configured for cross-origin requests from frontend
424
+
1.**Modular Monolith**: Each module under `app/modules/<domain>/` is self-contained with its own controllers, models, jobs, serializers, policies and services
425
+
2.**Zeitwerk Autoloading**: Custom `config/initializers/zeitwerk.rb` maps `app/modules/<domain>/<layer>/` to the correct Ruby namespace — no manual `require` needed
426
+
3.**API-Only**: Rails configured in API mode for JSON responses
427
+
4.**JWT Authentication**: Stateless authentication using JWT tokens
428
+
5.**Background Processing**: Long-running tasks handled by Sidekiq
429
+
6.**Caching**: Redis used for session management and performance optimization
430
+
7.**External Integration**: Riot Games API integration for real-time data
431
+
8.**Rate Limiting**: Rack::Attack for API rate limiting
432
+
9.**CORS**: Configured for cross-origin requests from frontend
428
433
429
434
### Deployment Architecture
430
435
@@ -494,7 +499,7 @@ graph TB
494
499
### Prerequisites
495
500
496
501
```
497
-
[✓] Ruby 3.2+
502
+
[✓] Ruby 3.4.5+
498
503
[✓] PostgreSQL 14+
499
504
[✓] Redis 6+
500
505
```
@@ -798,6 +803,13 @@ curl -X POST http://localhost:3333/api/v1/auth/refresh \
798
803
-`GET /strategy/assets/champion/:champion_name` — Get champion assets
799
804
-`GET /strategy/assets/map` — Get map assets
800
805
806
+
#### Meta Intelligence
807
+
-`GET /meta/builds` — List aggregated champion builds
808
+
-`GET /meta/builds/:champion` — Get build stats for a specific champion
0 commit comments