battlecode / galaxy

MIT License
10 stars 3 forks source link

Add notes from onboarding meeting #690

Closed n8kim1 closed 10 months ago

n8kim1 commented 10 months ago

Begins adding notes for onboarding! Happy to add more as needed, but don't think it should be in this PR.

Covers most things that we covered during our first meeting, except for battlecode-specific frontend files, cuz new devs have written frontend code already, we never recorded the presenting here, I had to tune out during it, and I don't know it myself oops. Better for someone else to do. (Also I don't want this otherwise-complete PR hanging)

Everything here is still a good reference, for new devs, for other devs that have to wade into webinfra, and for next year.

n8kim1 commented 10 months ago

lmao you can tell which part was the last part i wrote, and which part i gave up on

thanks for calling that out , needed it and ty for writing it for me too

On Tue, Oct 24, 2023 at 16:03 Serena Li @.***> wrote:

@.**** approved this pull request.

looks great! left small comments on clarifying what the two pubsubs are

In docs-general/onboard.md https://github.com/battlecode/galaxy/pull/690#discussion_r1370750358:

+ +## Webinfra system overview + +This is a rough depiction of how webinfra code runs in practice / in deployment. All of the systems in use are run through the Google Cloud Program (GCP). + +System Diagram + +## The big stuff + +Here, we introduce the systems through tracking the flow of information. + +First, a competitor uses their own computer to load up play.battlecode.org, thus visiting the frontend. Through the competitor's interactions, the frontend makes Internet requests to the backend. The backend allows these requests via the API, an interface that the backend defines to communicate with the outside world. Finally, the backend stores and retrieves bulk amounts of data in the database. + +For viewing general information or managing team/user data, the flow of data generally ends here. However, when a user wants to submit new source code for their bot, or submit a request to scrimmage against another team... these are more involved. + +Most importantly, these cases, the backend puts info about this request onto a Pub/Sub, which works very similarly to a queue. (We use two of these, one each for submitting and scrimmaging.)

⬇️ Suggested change

-Most importantly, these cases, the backend puts info about this request onto a Pub/Sub, which works very similarly to a queue. (We use two of these, one each for submitting and scrimmaging.) +Most importantly, these cases, the backend puts info about this request onto a Pub/Sub, which works very similarly to a queue. (We use two of these, one for submitting code and the other for requesting scrimmages)


In docs-general/onboard.md https://github.com/battlecode/galaxy/pull/690#discussion_r1370752933:

+ +The latter two are fairly straightforward; the first two are more complex, and involve our entire system. + +## Webinfra system overview + +This is a rough depiction of how webinfra code runs in practice / in deployment. All of the systems in use are run through the Google Cloud Program (GCP). + +System Diagram + +## The big stuff + +Here, we introduce the systems through tracking the flow of information. + +First, a competitor uses their own computer to load up play.battlecode.org, thus visiting the frontend. Through the competitor's interactions, the frontend makes Internet requests to the backend. The backend allows these requests via the API, an interface that the backend defines to communicate with the outside world. Finally, the backend stores and retrieves bulk amounts of data in the database. + +For viewing general information or managing team/user data, the flow of data generally ends here. However, when a user wants to submit new source code for their bot, or submit a request to scrimmage against another team... these are more involved.

⬇️ Suggested change

-For viewing general information or managing team/user data, the flow of data generally ends here. However, when a user wants to submit new source code for their bot, or submit a request to scrimmage against another team... these are more involved. +For viewing general information or managing team/user data, the flow of data generally ends here. However, when a user wants to submit new source code for their bot, or request a scrimmage against another team... these are more involved.

— Reply to this email directly, view it on GitHub https://github.com/battlecode/galaxy/pull/690#pullrequestreview-1695781253, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADK4FJCFTUXU7CKC4O2FWZLYBANHLAVCNFSM6AAAAAA6KJ6R7OVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTMOJVG44DCMRVGM . You are receiving this because you authored the thread.Message ID: @.***>