Skip to content

Commit 215b14b

Browse files
committed
docs: update project spec
1 parent 1fd409f commit 215b14b

1 file changed

Lines changed: 23 additions & 10 deletions

File tree

README.md

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
│ [■] Competitive Module — PandaScore integration + draft analysis │
5454
│ [■] Scrims Management — Opponent tracking + analytics │
5555
│ [■] Strategy Module — Draft planning + tactical boards │
56+
│ [■] Meta Intelligence — Build aggregation, champion/item analytics │
5657
│ [■] Support System — Ticketing + staff dashboard + FAQ │
5758
│ [■] Global Search — Meilisearch full-text search across models │
5859
│ [■] Real-time Messaging — Action Cable WebSocket team chat │
@@ -190,9 +191,11 @@ This API follows a **modular monolith** architecture:
190191
┌─────────────────────────────────────────────────────────────────────────────┐
191192
│ MODULE │ RESPONSIBILITY │
192193
├─────────────────────┼───────────────────────────────────────────────────────┤
194+
│ core │ Shared base classes, concerns and constants │
193195
│ authentication │ User auth and authorization │
196+
│ admin │ Organization, audit log and admin player management │
194197
│ dashboard │ Dashboard statistics and metrics │
195-
│ players │ Player management and statistics
198+
│ players │ Player management, rosters and statistics │
196199
│ scouting │ Player scouting and talent discovery │
197200
│ analytics │ Performance, competitive draft, tournament & opponent│
198201
│ matches │ Match data and statistics │
@@ -201,6 +204,7 @@ This API follows a **modular monolith** architecture:
201204
│ team_goals │ Goal setting and tracking │
202205
│ riot_integration │ Riot Games API integration │
203206
│ competitive │ PandaScore integration, pro matches, draft analysis │
207+
│ meta_intelligence │ Build aggregation, champion/item meta analytics │
204208
│ scrims │ Scrim management and opponent team tracking │
205209
│ strategy │ Draft planning and tactical board system │
206210
│ support │ Support ticket system with staff dashboard and FAQ │
@@ -417,14 +421,15 @@ graph TB
417421

418422
**Key Architecture Principles:**
419423

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
428433

429434
### Deployment Architecture
430435

@@ -494,7 +499,7 @@ graph TB
494499
### Prerequisites
495500

496501
```
497-
[✓] Ruby 3.2+
502+
[✓] Ruby 3.4.5+
498503
[✓] PostgreSQL 14+
499504
[✓] Redis 6+
500505
```
@@ -798,6 +803,13 @@ curl -X POST http://localhost:3333/api/v1/auth/refresh \
798803
- `GET /strategy/assets/champion/:champion_name` — Get champion assets
799804
- `GET /strategy/assets/map` — Get map assets
800805

806+
#### Meta Intelligence
807+
- `GET /meta/builds` — List aggregated champion builds
808+
- `GET /meta/builds/:champion` — Get build stats for a specific champion
809+
- `POST /meta/builds/aggregate` — Trigger build aggregation job (admin)
810+
- `GET /meta/items` — List item analytics
811+
- `GET /meta/items/:item_id` — Get item performance stats
812+
801813
#### Support System
802814
- `GET /support/tickets` — List user's tickets
803815
- `GET /support/tickets/:id` — Get ticket details
@@ -917,6 +929,7 @@ bundle exec rspec spec/integration/players_spec.rb
917929
║ Competitive ║ 14 ║
918930
║ Scrims ║ 14 ║
919931
║ Strategy ║ 16 ║
932+
║ Meta Intelligence ║ 5 ║
920933
║ Support ║ 16 ║
921934
║ Admin ║ 9 ║
922935
║ Notifications ║ 6 ║

0 commit comments

Comments
 (0)