Skip to content

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:

Admin Page Load Admin Page Load Sequence Diagram

  • 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

Create a Simulation

  • 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

Update A Game Simulation

Update a Simulation Sequence Diagram

  • 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

Clone this wiki locally