How starlinetor/cybersecurity_class_2026 works
1. This repository is really two separate workspaces:
- a LaTeX-based research/reporting workspace under ResearchReport and Research_essay_template_EasyChair
- a Python authorization project under topic-a-authorization/topic-a-authorization
2. The LaTeX side is a document-production pipeline, not an application runtime.
The important source files are ResearchReport/main.tex and Research_essay_template_EasyChair/EasyChair3.5/easychair.tex, with bibliographies in .bib files and the compiled PDFs/logs as build outputs. These folders are oriented around writing, compiling, and packaging a research paper on “Network Encryption and Traffic Analysis.”
3. The LaTeX subsystem has a clear source-to-artifact flow:
manuscript .tex + bibliography .bib + template class/files → compiled .pdf and intermediate build products (.aux, .bbl, .log, .synctex.gz, etc.).
Those generated files are present in the repo, so an architecture diagram should show them as outputs of a documentation build step, not as inputs to the software system.
4. The topic-a-authorization project is the actual executable software in the repo.
It is a standalone Python 3 authorization engine that consumes JSON datasets describing subjects, resources, policies, and requests, then produces an authorization decision output in JSON.
5. The runtime entrypoint is topic-a-authorization/main.py.
This is the top-level orchestrator: it likely wires together input loading, policy evaluation, and output writing. The architecture should treat it as the single command-line entrypoint rather than a service with multiple deployable components.
6. Input data is partitioned into four domain files in input/:
- subjects.json
- resources.json
- policies.json
- requests.json
This separation suggests a rule-evaluation model where identities, protected assets, and access requests are loaded independently and then matched by the engine.
7. The core logic is in src/engine.py.
That module is the authorization decision boundary: it should be depicted as the subsystem that evaluates requests against policies using the loaded subject/resource data. The repo structure implies that this is the only part containing domain logic, while the other modules are support utilities.
8. src/loader.py is the input boundary.
Its role is to read and normalize the JSON files from the input/ directory so the engine can work with in-memory Python objects. In the diagram, this sits between filesystem data and the decision engine.
9. src/verify_json.py is a validation/checking utility.
It likely ensures the generated or test JSON conforms to expected structure before use or before comparison. This makes it part of the quality/control boundary rather than the authorization logic itself.
10. output/output.json is the produced artifact of the authorization run.
The repo also contains test_input/ and test_output/, which indicate a file-based test harness: known inputs are run through the engine and compared with an expected JSON result. That makes the system easy to diagram as a deterministic batch processor.
11. src/tests.py is the test layer for the Python project.
It appears to exercise the engine against the bundled test fixtures, so tests are local and offline; there is no evidence of external APIs, databases, or network dependencies in the architecture.
12. At a high level, the important architectural boundary is file-based data processing:
JSON inputs → loader/validation → authorization engine → JSON output, with tests using parallel fixture directories to verify behavior.
The LaTeX materials are independent of that runtime and should be shown as a separate documentation/reporting subsystem.
Main entry points: engine.py Engine · tests.py Tests · main.tex Main paper · easychair.tex Essay draft
Components 17
LaTeX workspace
Document-production pipeline for research/report writing and PDF compilation.
- Main paper · Primary manuscript for the research report.
ResearchReport/main.tex - Report refs · Bibliography file used by the main report build.
ResearchReport/applsci-v12-i01_20260511.bib - Paper refs · Additional bibliography file used by the report.
ResearchReport/pericles_1099119025.bib - Report PDF · Compiled output of the LaTeX report build.
ResearchReport/main.pdf - Essay draft · EasyChair-based essay manuscript.
Research_essay_template_EasyChair/EasyChair3.5/easychair.tex - Template class · Template class file defining the essay formatting.
Research_essay_template_EasyChair/EasyChair3.5/easychair.cls - Essay refs · Bibliography for the EasyChair essay build.
Research_essay_template_EasyChair/EasyChair3.5/easychair.bib - Essay PDF · Compiled output of the EasyChair document build.
Research_essay_template_EasyChair/EasyChair3.5/easychair.pdf
Authorization engine
Python batch processor that loads JSON inputs, evaluates policies, and writes authorization results.
- Entry point · Top-level orchestrator for authorization runs.
topic-a-authorization/topic-a-authorization/main.py - Input data · Domain inputs for subjects, resources, policies, and requests.
topic-a-authorization/topic-a-authorization/input - Loader · Reads and normalizes JSON input files for the engine.
topic-a-authorization/topic-a-authorization/src/loader.py - Engine · Evaluates requests against policies to produce authorization decisions.
topic-a-authorization/topic-a-authorization/src/engine.py - Verifier · Checks JSON structure or generated artifacts for correctness.
topic-a-authorization/topic-a-authorization/src/verify_json.py - Result JSON · Produced authorization decision output.
topic-a-authorization/topic-a-authorization/output/output.json - Tests · Local tests for the authorization workflow.
topic-a-authorization/topic-a-authorization/src/tests.py - Test inputs · Fixture inputs used by the test harness.
topic-a-authorization/topic-a-authorization/test_input - Expected JSON · Expected output used for comparison in tests.
topic-a-authorization/topic-a-authorization/test_output/test_output.json
Connections 17
- Main paper → Report refs: cites · Main report uses bibliography data.
- Main paper → Paper refs: cites · Main report uses bibliography data.
- Main paper → Report PDF: compiles to · LaTeX source is compiled into the report PDF.
- Essay draft → Template class: uses · Essay manuscript depends on the template class.
- Essay draft → Essay refs: cites · Essay manuscript uses bibliography data.
- Essay draft → Essay PDF: compiles to · Template manuscript is compiled into a PDF artifact.
- Entry point → Loader: loads via · Entry point delegates input ingestion to the loader.
- Entry point → Engine: evaluates via · Entry point invokes the authorization decision core.
- Entry point → Verifier: validates via · Entry point can call validation helpers.
- Loader → Input data: reads · Loader reads the domain JSON input bundle.
- Loader → Engine: prepares data for · Normalized inputs are passed to the engine.
- Engine → Result JSON: writes · Engine produces the authorization result artifact.
- Engine → Verifier: checked by · Generated or intermediate JSON can be verified.
- Tests → Engine: exercises · Tests target the decision core.
- Tests → Test inputs: loads · Tests consume fixture inputs.
- Tests → Expected JSON: compares against · Tests compare results to expected JSON.
- Tests → Verifier: uses · Tests can use validation helpers.