-
Notifications
You must be signed in to change notification settings - Fork 0
Admin Page Architecture
Mana Azarm edited this page Jun 14, 2021
·
7 revisions
Admin page gives the admin an overview of all their game simulations and allows them to create/run/modify game simulations. This document walks through how this page is implemented:
- Client-> API: Admin Page Request
- API-> server: request: Get: ~/gameInstancesByAdmin(adminId) \n (Game Instances)
- server-> DB: Select * from GameInstances \n where createdByAdminId = adminId
- DB-> server: gameInstance records for adminId
- server-> API: Return Admin's game instances
- API-> Client: Return Admin Page

- Client-> Server: Requests to create new game X instance
- note right of Server: Get list of existing games
- Server-> API: Requests Get: ~\NewGameSimulation
- API-> DB: Select * from Games \n where gameId = X
- DB-> API: Game Parameters X Record
- API-> Server: Game Parameters Json
- Server-> Client: New Simulation Pop-up Page
- Client-> Server: Submit new simulation \n(Hit submit button on new simulation pop-up page)
- Server-> API: Requests Post: ~\NewGameSimulation
- API-> DB: Add New Record: \nInsert into GameInstances() values
- DB-> API: Success/Failure message
- API-> DB: Select * from Game Instances \nwhere createdByAdminId = user
- DB-> API: Admin Simulations
- API-> Server: Return Admin's game instances
- Server-> Client: Update list of simulations using useState hooks

- client->server: request the edit game simulation pop up page
- note right of client: user clicks on a simulation \n from the list of their simulations
- server-> API: Get request: \n ~/getGameSimulationById(gameSimulation)
- API->DB: select * from GameInstances \nwhere gameInstanceId = gameSimulation.id
- DB->API: gameInstance record
- API-> server: Get response: \n gameInstance JSON
- server->client: filled edit simulation page
- client-> server: submit edit page
- server->API: Put request: \n ~/updateGameSimulation(gameSimulation)
- API->DB: Update GameInstances \n set [column]=[value] \n where gameInstanceId= gameSimulation.Id
- DB->API: success/failure message
- API->server: success/failure message
- server->client: success/failure message