Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation #140

Open
DanielHabenicht opened this issue Apr 23, 2021 · 7 comments
Open

Documentation #140

DanielHabenicht opened this issue Apr 23, 2021 · 7 comments
Assignees

Comments

@DanielHabenicht
Copy link
Contributor

  • What is each folder (project) for? Could someone provide an overview? Or add a readme to each folder?
@gehaxelt
Copy link
Contributor

👍 for more details in the README :-)

@DanielHabenicht
Copy link
Contributor Author

DanielHabenicht commented Apr 23, 2021

Also, some information on how to run all of the projects would be appreciated.
E.g. in EnoChecker you are loading an assembly (where from?) and there is a multitude of errors: I had an old IDE

@ldruschk
Copy link
Member

I can't really give a complete overview, but as far as getting the Engine running locally is concerned, the usage instructions from the Readme should be sufficient. Note that starting the EnoFlagSink before the EnoEngine will fail at the moment, this is a known bug tracked in #124

EnoLauncher waits for tasks to be added to the database by the EnoEngine and sends them to the checkers via HTTP and stores the results once it receives them. EnoFlagSink listens for flag submissions by the teams and adds them to the database. EnoEngine is responsible for creating the tasks for EnoLauncher at the beginning of each round as well as calculating the points at the end of each round, based on the submitted flags from EnoFlagSink and checker results from EnoLauncher.

EnoCore and EnoDatabase are just some common classes and the database project (I think).

EnoChecker is a checker library written in C#, although that does not really fit into this repository as it is not related to the Engine itself. https://github.com/enowars/enowars4-service-gamemaster might be a good reference on the usage. I assume DummyChecker and SampleChaker are somehow related to this.

FlagShooter was used in the past to stress test the flag submission endpoint, but I don't think this was used/maintained in quite some time.

Testsetup looks like it should probably be deleted, at least I don't think this is working.

@Trolldemorted and @Savallator should be able to correct me if I'm wrong somewhere and are probably able to create a more detailed Readme

@ldruschk
Copy link
Member

I have also added the most recent ctf.json from the last Bambi CTF, the older sample ctf.jsons might no longer work since we changed stuff in the ctf.json spec quite a lot

https://github.com/enowars/EnoEngine/blob/master/ctf.bambi5.json

@Savallator
Copy link
Contributor

Flagshooter was working after Enowars 4 at least, i am quite confident it should work without needing to change much.
DummyChecker is a Checker that always returns ok, you can use that for performance testing. It is made to be super fast, so it does not use JSON Serialization but constant result strings.
In contrast, SampleChecker is kind of the same, but has the standard procedure a checker should use. This one might need some more polish to adhere to the recent changes.
Testchecker is gone now, that was old stuff.
In EnoCore is basically the Classes for JSON stuff, e.g. Scoreboard, Config, Checkertaskmessage, Logging.
EnoDatabase contains the models for the Postgres Database.
The Startup Instructions in the Readme should be up to date.
For dev, i would recommend either Visual Studio 2019 (recommended if debugging is needed, although a local setup is a bit more complicated, and you of course also need the Database then) or Visual Studio Code.

@Trolldemorted
Copy link
Member

EnoDatabase contains the models for the Postgres Database.

The db models are in EnoCore too, EnoDatabase contains all functions the other projects (Engine, Launcher, FlagShooter) need to interact with the postgres

@DanielHabenicht
Copy link
Contributor Author

just a reminder for myself: https://mrin9.github.io/RapiDoc/examples/themes.html#post-/pet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants