How dcdiegocortes/sprint05_api_lv01_groncho works
Grôncho is a Laravel REST API for money-free clothing swaps. A user registers or logs in, then manages a profile and clothing/aesthetic listings; swipes can produce mutual matches, which participants use to request, accept, and finish exchanges. Finishing an exchange transfers item ownership, while rankings summarize activity. The map includes documented authorization and image-management capabilities. Relationships are limited to routes, calls, or capabilities evidenced by the excerpts, SOURCE INDEX, or README; unsampled subsystems are represented at their supported directory paths.
Main entry points: api.php API routes · Models Domain records · RankingController.php Rankings · ExchangeController.php Exchange requests
Components 20
API and identity
- API routes
routes/api.php - Token authentication
app/Http/Controllers/AuthController.php
Profiles and discovery
- Profile management
app/Http/Controllers/ProfileController.php - User administration
app/Http/Controllers/UserController.php - Aesthetic profiles
app/Http/Controllers/UniverseController.php - Profile images
app/Http/Controllers/UniverseImageController.php - Swiping
app/Http/Controllers/SwipeController.php - Rankings
app/Http/Controllers/RankingController.php - Ranking calculations
app/Services/RankingService.php
Swap catalog
- Garment listings
app/Http/Controllers/ItemController.php - Garment images
app/Http/Controllers/ItemImageController.php
Matching and exchange
- Mutual matches
app/Http/Controllers/MatchController.php - Match generation
app/Services/MatchService.php - Exchange requests
app/Http/Controllers/ExchangeController.php - Exchange lifecycle
app/Services/ExchangeService.php
Access and persistence
- Resource policies
app/Policies - Admin guard
app/Http/Middleware/EnsureUserIsAdmin.php - Domain records
app/Models
Other components
- API client
- MySQL database
Connections 23
- API client → API routes: sends requests
- API routes → Token authentication: routes auth
routes/api.php - API routes → Profile management: routes profile
routes/api.php - API routes → User administration: routes users
routes/api.php - API routes → Aesthetic profiles: routes profiles
routes/api.php - API routes → Profile images: routes images
routes/api.php - API routes → Swiping: routes swipes
routes/api.php - API routes → Mutual matches: routes matches
routes/api.php - API routes → Garment listings: routes items
routes/api.php - API routes → Garment images: routes images
routes/api.php - API routes → Rankings: routes rankings
routes/api.php - API routes → Exchange requests: routes exchanges
routes/api.php - Token authentication → Domain records: creates users
app/Http/Controllers/AuthController.php - Swiping → Match generation: delegates matching
app/Http/Controllers/SwipeController.php - Rankings → Ranking calculations: requests rankings
app/Http/Controllers/RankingController.php - Exchange requests → Exchange lifecycle: applies lifecycle
app/Http/Controllers/ExchangeController.php - Exchange requests → Domain records: creates exchanges
app/Http/Controllers/ExchangeController.php - Garment listings → Domain records: manages items
app/Http/Controllers/ItemController.php - Exchange lifecycle → Domain records: updates items
app/Services/ExchangeService.php - Exchange lifecycle → Domain records: updates exchanges
app/Services/ExchangeService.php - Rankings → Resource policies: enforces permissions
- API routes → Admin guard: guards admin routes
- Domain records → MySQL database: persists records