# debajyotisamanta/msl-msit architecture

> Architecture diagram of the GitHub repository debajyotisamanta/msl-msit, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/debajyotisamanta/msl-msit
- Repository: https://github.com/debajyotisamanta/msl-msit

## Overview

MSL-MSIT is a collegiate soccer tournament management platform. Players and managers register, administrators process registrations, team owners bid in a live auction, and the resulting squads and match activity are presented through roster, schedule, venue, rules, and live-score views. The backend provides domain APIs and Socket.IO updates, with MongoDB-backed season, auction, registration, and match state. The README documents the major product capabilities; source-index references and excerpts establish selected module wiring, but many route and page internals were not sampled.

Main entry points: [`backend/src/index.js`](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/index.js) (Express API server), [`frontend/src/App.jsx`](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/App.jsx) (React application), [`backend/src/models`](https://github.com/debajyotisamanta/msl-msit/tree/main/backend/src/models) (Tournament records), [`backend/src/routes/auction.js`](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/auction.js) (Auction APIs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web experience"]
  node_web["React application<br/>[App.jsx]"]
  node_feedback_ui["Feedback<br/>[Feedbacks.jsx]"]
  node_socket_client["Realtime client<br/>[socket.js]"]
end

subgraph group_registration["Registration"]
  node_registration_ui["Registration forms<br/>[Register.jsx]"]
  node_manager_registration_ui["Manager registration"]
  node_players_routes["Player registration APIs<br/>[players.js]"]
  node_managers_routes["Manager registration APIs<br/>[managers.js]"]
end

subgraph group_competition["Tournament operations"]
  node_auction_ui["Live auction<br/>[Auction.jsx]"]
  node_rosters_ui["Team rosters<br/>[Rosters.jsx]"]
  node_match_ui["Schedules and scores<br/>[MatchSchedule.jsx]"]
  node_live_score_ui["Live score view<br/>[LiveScore.jsx]"]
  node_venue_rules_ui["Venue and rulebook<br/>[Venue.jsx]"]
  node_auction_routes["Auction APIs<br/>[auction.js]"]
  node_match_routes["Match management APIs<br/>[match.js]"]
  node_venue_routes["Venue APIs<br/>[venue.js]"]
  node_rulebook_routes["Rulebook APIs<br/>[rulebook.js]"]
end

subgraph group_server["Backend services"]
  node_api["Express API server<br/>[index.js]"]
  node_feedback_routes["Feedback APIs<br/>[feedback.js]"]
  node_socket_server["Realtime server<br/>[socket.js]"]
  node_season["Season coordination<br/>[season.js]"]
end

subgraph group_data["Persistence"]
  node_mongo[("MongoDB")]
  node_domain_models[("Tournament records")]
end

node_visitor(("League participants"))

node_visitor -->|"uses"| node_web
node_web -->|"routes to"| node_registration_ui
node_web -->|"routes to"| node_manager_registration_ui
node_web -->|"routes to"| node_auction_ui
node_web -->|"routes to"| node_match_ui
node_web -->|"routes to"| node_live_score_ui
node_visitor -->|"views squads"| node_rosters_ui
node_visitor -->|"views details"| node_venue_rules_ui
node_visitor -->|"submits feedback"| node_feedback_ui
node_registration_ui -->|"submits registration"| node_api
node_manager_registration_ui -->|"submits registration"| node_api
node_auction_ui -->|"bids through"| node_api
node_match_ui -->|"loads schedule"| node_api
node_live_score_ui -->|"subscribes to updates"| node_socket_client
node_match_ui -->|"subscribes to updates"| node_socket_client
node_auction_ui -->|"joins auction room"| node_socket_client
node_api -->|"mounts routes"| node_players_routes
node_api -->|"mounts routes"| node_managers_routes
node_api -->|"mounts routes"| node_auction_routes
node_api -->|"mounts routes"| node_match_routes
node_api -->|"mounts routes"| node_feedback_routes
node_api -->|"mounts routes"| node_venue_routes
node_api -->|"mounts routes"| node_rulebook_routes
node_players_routes -->|"reads and writes"| node_domain_models
node_managers_routes -->|"reads and writes"| node_domain_models
node_auction_routes -->|"reads and writes"| node_domain_models
node_match_routes -->|"reads and writes"| node_domain_models
node_feedback_routes -.->|"stores feedback"| node_domain_models
node_api -->|"connects"| node_mongo
node_domain_models -->|"persists records"| node_mongo
node_auction_routes -->|"uses season state"| node_season
node_match_routes -->|"uses season state"| node_season
node_api -->|"initializes"| node_socket_server
node_socket_client -->|"connects to"| node_socket_server
node_socket_server -.->|"broadcasts auction changes"| node_auction_routes
node_socket_server -.->|"broadcasts match changes"| node_match_routes

click node_web "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/App.jsx"
click node_registration_ui "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Register.jsx"
click node_manager_registration_ui "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/ManagersRegistration.jsx"
click node_auction_ui "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Auction.jsx"
click node_rosters_ui "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Rosters.jsx"
click node_match_ui "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/MatchSchedule.jsx"
click node_live_score_ui "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/LiveScore.jsx"
click node_venue_rules_ui "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Venue.jsx"
click node_feedback_ui "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Feedbacks.jsx"
click node_api "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/index.js"
click node_players_routes "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/players.js"
click node_managers_routes "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/managers.js"
click node_auction_routes "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/auction.js"
click node_match_routes "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/match.js"
click node_venue_routes "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/venue.js"
click node_rulebook_routes "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/rulebook.js"
click node_feedback_routes "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/feedback.js"
click node_socket_client "https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/services/socket.js"
click node_socket_server "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/socket.js"
click node_season "https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/utils/season.js"
click node_domain_models "https://github.com/debajyotisamanta/msl-msit/tree/main/backend/src/models"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_feedback_ui,node_socket_client toneBlue
class node_registration_ui,node_manager_registration_ui,node_players_routes,node_managers_routes toneAmber
class node_auction_ui,node_rosters_ui,node_match_ui,node_live_score_ui,node_venue_rules_ui,node_auction_routes,node_match_routes,node_venue_routes,node_rulebook_routes toneMint
class node_api,node_feedback_routes,node_socket_server,node_season toneRose
class node_mongo,node_domain_models,node_visitor toneIndigo
```

## Components

### Web experience

- [React application](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Feedback](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Feedbacks.jsx): `frontend/src/pages/Feedbacks.jsx`
- [Realtime client](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/services/socket.js): `frontend/src/services/socket.js`

### Registration

- [Registration forms](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Register.jsx): `frontend/src/pages/Register.jsx`
- [Manager registration](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/ManagersRegistration.jsx): `frontend/src/pages/ManagersRegistration.jsx`
- [Player registration APIs](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/players.js): `backend/src/routes/players.js`
- [Manager registration APIs](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/managers.js): `backend/src/routes/managers.js`

### Tournament operations

- [Live auction](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Auction.jsx): `frontend/src/pages/Auction.jsx`
- [Team rosters](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Rosters.jsx): `frontend/src/pages/Rosters.jsx`
- [Schedules and scores](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/MatchSchedule.jsx): `frontend/src/pages/MatchSchedule.jsx`
- [Live score view](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/LiveScore.jsx): `frontend/src/pages/LiveScore.jsx`
- [Venue and rulebook](https://github.com/debajyotisamanta/msl-msit/blob/main/frontend/src/pages/Venue.jsx): `frontend/src/pages/Venue.jsx`
- [Auction APIs](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/auction.js): `backend/src/routes/auction.js`
- [Match management APIs](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/match.js): `backend/src/routes/match.js`
- [Venue APIs](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/venue.js): `backend/src/routes/venue.js`
- [Rulebook APIs](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/rulebook.js): `backend/src/routes/rulebook.js`

### Backend services

- [Express API server](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/index.js): `backend/src/index.js`
- [Feedback APIs](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/routes/feedback.js): `backend/src/routes/feedback.js`
- [Realtime server](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/socket.js): `backend/src/socket.js`
- [Season coordination](https://github.com/debajyotisamanta/msl-msit/blob/main/backend/src/utils/season.js): `backend/src/utils/season.js`

### Persistence

- **MongoDB**
- [Tournament records](https://github.com/debajyotisamanta/msl-msit/tree/main/backend/src/models): `backend/src/models`

### Other components

- **League participants**

## Connections

- League participants → React application: uses (evidence: `README.md`)
- React application → Registration forms: routes to (evidence: `frontend/src/App.jsx`)
- React application → Manager registration: routes to (evidence: `frontend/src/App.jsx`)
- React application → Live auction: routes to (evidence: `frontend/src/App.jsx`)
- React application → Schedules and scores: routes to (evidence: `frontend/src/App.jsx`)
- React application → Live score view: routes to (evidence: `frontend/src/App.jsx`)
- League participants → Team rosters: views squads (evidence: `README.md`)
- League participants → Venue and rulebook: views details (evidence: `README.md`)
- League participants → Feedback: submits feedback (evidence: `README.md`)
- Registration forms → Express API server: submits registration (evidence: `README.md`)
- Manager registration → Express API server: submits registration (evidence: `README.md`)
- Live auction → Express API server: bids through (evidence: `README.md`)
- Schedules and scores → Express API server: loads schedule (evidence: `README.md`)
- Live score view → Realtime client: subscribes to updates (evidence: `frontend/src/pages/LiveScore.jsx`)
- Schedules and scores → Realtime client: subscribes to updates (evidence: `frontend/src/pages/MatchSchedule.jsx`)
- Live auction → Realtime client: joins auction room (evidence: `frontend/src/pages/Auction.jsx`)
- Express API server → Player registration APIs: mounts routes (evidence: `backend/src/index.js`)
- Express API server → Manager registration APIs: mounts routes (evidence: `backend/src/index.js`)
- Express API server → Auction APIs: mounts routes (evidence: `backend/src/index.js`)
- Express API server → Match management APIs: mounts routes (evidence: `backend/src/index.js`)
- Express API server → Feedback APIs: mounts routes (evidence: `backend/src/index.js`)
- Express API server → Venue APIs: mounts routes (evidence: `backend/src/index.js`)
- Express API server → Rulebook APIs: mounts routes (evidence: `backend/src/index.js`)
- Player registration APIs → Tournament records: reads and writes (evidence: `backend/src/routes/players.js`)
- Manager registration APIs → Tournament records: reads and writes (evidence: `backend/src/routes/managers.js`)
- Auction APIs → Tournament records: reads and writes (evidence: `backend/src/routes/auction.js`)
- Match management APIs → Tournament records: reads and writes (evidence: `backend/src/routes/match.js`)
- Feedback APIs → Tournament records: stores feedback
- Express API server → MongoDB: connects (evidence: `backend/src/index.js`)
- Tournament records → MongoDB: persists records (evidence: `README.md`)
- Auction APIs → Season coordination: uses season state (evidence: `backend/src/routes/auction.js`)
- Match management APIs → Season coordination: uses season state (evidence: `backend/src/routes/match.js`)
- Express API server → Realtime server: initializes (evidence: `backend/src/index.js`)
- Realtime client → Realtime server: connects to (evidence: `frontend/src/services/socket.js`)
- Realtime server → Auction APIs: broadcasts auction changes (evidence: `backend/src/routes/auction.js`)
- Realtime server → Match management APIs: broadcasts match changes (evidence: `backend/src/routes/match.js`)
