Skip to content

Commit 8f683c9

Browse files
Merge pull request #275 from webtech-network/getting-started-workflow-docs
docs: make getting started a real grading workflow
2 parents a751b07 + 896090d commit 8f683c9

7 files changed

Lines changed: 141 additions & 30 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ The **SandboxManager** provides secure, isolated execution environments:
154154
- **Automatic Lifecycle**: TTL management, health checks, and cleanup
155155
- **Resource Control**: Memory limits, timeouts, and isolation
156156

157-
#### Template System
157+
#### Template Library
158158

159159
Templates provide test functions for different assignment contexts:
160160

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Template System
1+
# Template Library
22

33
## What it is
44

Lines changed: 100 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,117 @@
1-
# Local Docs Development (MkDocs)
1+
# Run Your First Grading Workflow
22

3-
This project uses **MkDocs Material** to publish the documentation website.
3+
This quickstart walks you through one complete grading cycle:
44

5-
## Run locally
5+
1. start the API
6+
2. create a grading configuration
7+
3. submit student code
8+
4. fetch the graded result
9+
10+
## Prerequisites
11+
12+
- Docker and Docker Compose installed
13+
- Python available on your machine
14+
- Project dependencies installed (`pip install -r requirements.txt`)
15+
16+
## 1) Start Autograder
617

718
```bash
8-
pip install -r requirements-docs.txt
9-
mkdocs serve
19+
make start-autograder
1020
```
1121

12-
Open `http://127.0.0.1:8000` to preview changes with live reload.
22+
When ready, the API is available at `http://localhost:8080`.
23+
24+
You can check health:
1325

14-
## Build locally
26+
```bash
27+
curl http://localhost:8080/api/v1/health
28+
```
29+
30+
## 2) Create a grading configuration
1531

1632
```bash
17-
mkdocs build --strict
33+
curl -X POST http://localhost:8080/api/v1/configs \
34+
-H "Content-Type: application/json" \
35+
-d '{
36+
"external_assignment_id": "demo-assignment-1",
37+
"template_name": "input_output",
38+
"criteria_config": {
39+
"base": {
40+
"weight": 100,
41+
"subjects": [
42+
{
43+
"subject_name": "Functionality",
44+
"weight": 100,
45+
"tests": [
46+
{
47+
"name": "expect_output",
48+
"weight": 100,
49+
"parameters": {
50+
"inputs": ["Alice"],
51+
"expected_output": "Hello, Alice!",
52+
"program_command": "python3 main.py"
53+
}
54+
}
55+
]
56+
}
57+
]
58+
}
59+
},
60+
"languages": ["python"],
61+
"setup_config": {
62+
"required_files": ["main.py"],
63+
"setup_commands": []
64+
},
65+
"include_feedback": true,
66+
"feedback_config": {
67+
"general": {
68+
"report_title": "Evaluation Report",
69+
"show_score": true,
70+
"show_passed_tests": false,
71+
"add_report_summary": true
72+
}
73+
}
74+
}'
1875
```
1976

20-
`--strict` turns warnings into errors, which helps catch broken navigation or links before opening a PR.
77+
## 3) Submit a student solution
78+
79+
```bash
80+
curl -X POST http://localhost:8080/api/v1/submissions \
81+
-H "Content-Type: application/json" \
82+
-d '{
83+
"external_assignment_id": "demo-assignment-1",
84+
"external_user_id": "student-1",
85+
"username": "student_1",
86+
"language": "python",
87+
"files": [
88+
{
89+
"filename": "main.py",
90+
"content": "name = input().strip()\nprint(f\"Hello, {name}!\")"
91+
}
92+
]
93+
}'
94+
```
95+
96+
Copy the returned `id` from the response. That is your `submission_id`.
97+
98+
## 4) Poll for the result
99+
100+
```bash
101+
curl http://localhost:8080/api/v1/submissions/<submission_id>
102+
```
21103

22-
## Where to edit
104+
When grading finishes, response status becomes `completed`, and you will get:
23105

24-
- Main landing page: `docs/index.md`
25-
- Core concept pages: `docs/core/`
26-
- Pipeline deep dives: `docs/pipeline/`
27-
- Architecture references: `docs/architecture/`
28-
- Roadmaps: `docs/roadmaps/`
106+
- `final_score`
107+
- `feedback`
108+
- `result_tree`
109+
- `focus`
29110

30-
## Documentation standards
111+
## What you just exercised
31112

32-
Every new technical page should follow this teaching pattern:
113+
You ran the full core flow:
33114

34-
1. **What it is**
35-
2. **Why it matters**
36-
3. **How it works**
37-
4. **Concrete example**
38-
5. **Common mistakes**
115+
`LOAD_TEMPLATE -> BUILD_TREE -> SANDBOX -> PRE_FLIGHT -> GRADE -> FOCUS -> FEEDBACK`
39116

40-
For rubric quality guidance, use [Educational Criteria Design](../guides/criteria-tree-educational-standards.md).
117+
To understand each stage in depth, continue with [Pipeline Architecture](../core/pipeline-architecture.md).
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Docs Site Development (MkDocs)
2+
3+
This project uses **MkDocs Material** to publish the documentation website.
4+
5+
## Run locally
6+
7+
```bash
8+
pip install -r requirements-docs.txt
9+
mkdocs serve
10+
```
11+
12+
Open `http://127.0.0.1:8000` to preview changes with live reload.
13+
14+
## Build locally
15+
16+
```bash
17+
mkdocs build --strict
18+
```
19+
20+
`--strict` turns warnings into errors, which helps catch broken navigation or links before opening a PR.
21+
22+
## Documentation standards
23+
24+
Every new technical page should follow this teaching pattern:
25+
26+
1. **What it is**
27+
2. **Why it matters**
28+
3. **How it works**
29+
4. **Concrete example**
30+
5. **Common mistakes**
31+
32+
For rubric quality guidance, use [Educational Criteria Design](criteria-tree-educational-standards.md).

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This documentation is organized to be both practical for first-time users and de
77
1. [Pipeline Architecture](core/pipeline-architecture.md)
88
2. [Criteria Tree](core/criteria-tree.md)
99
3. [Sandbox Management](core/sandbox-management.md)
10-
4. [Template System](core/template-system.md)
10+
4. [Template Library](core/template-library.md)
1111
5. [Feedback Generation](core/feedback-generation.md)
1212

1313
## Learning Paths
@@ -27,7 +27,7 @@ This documentation is organized to be both practical for first-time users and de
2727

2828
### Template author
2929

30-
- [Template System](core/template-system.md)
30+
- [Template Library](core/template-library.md)
3131
- [Input/Output Template](template-library/input_output.md)
3232
- [API Testing Template](template-library/api_testing.md)
3333
- [Web Development Template](template-library/web_dev.md)

docs/roadmaps/FEATURE_ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ How this integrates with the existing grading template strategy (whether it beco
9393

9494
#### Open Challenges
9595

96-
- **Integration with the template system.** How static analysis tests fit into the existing grading template strategy needs further discussion — whether as a new template type, an extension to existing templates, or a separate layer that can be composed with any template.
96+
- **Integration with the Template Library.** How static analysis tests fit into the existing grading template strategy needs further discussion — whether as a new template type, an extension to existing templates, or a separate layer that can be composed with any template.
9797
- **Balancing language-agnostic and language-specific checks.** The hybrid approach needs a clear structure so that educators can configure both general and language-specific checks without the system becoming overly complex.
9898

9999
---

mkdocs.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,13 @@ markdown_extensions:
3838
nav:
3939
- Home: index.md
4040
- Getting Started:
41-
- Local Docs Development: getting-started/mkdocs-local-development.md
41+
- Run Your First Grading Workflow: getting-started/mkdocs-local-development.md
42+
- Development Guide: guides/development.md
4243
- Core Concepts:
4344
- Pipeline Architecture: core/pipeline-architecture.md
4445
- Criteria Tree: core/criteria-tree.md
4546
- Sandbox Management: core/sandbox-management.md
46-
- Template System: core/template-system.md
47+
- Template Library: core/template-library.md
4748
- Feedback Generation: core/feedback-generation.md
4849
- Educational Criteria Design: guides/criteria-tree-educational-standards.md
4950
- API:
@@ -77,6 +78,7 @@ nav:
7778
- Localization: features/localization.md
7879
- Guides:
7980
- Development Guide: guides/development.md
81+
- Docs Site Development: guides/docs-site-development.md
8082
- Criteria Configuration Examples: guides/criteria_configuration_examples.md
8183
- GitHub Module: guides/github_module.md
8284
- Roadmaps:

0 commit comments

Comments
 (0)