aboutsummaryrefslogtreecommitdiff
path: root/course/projects
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-10-18 14:05:18 +0200
committerAgando <roduccomm@gmail.com>2026-10-18 14:05:18 +0200
commit0d0d936e7b5cd41a31773069540b1ddb8836ef44 (patch)
tree273e7ee9a72453655119bf0f63efb9b61e193d7f /course/projects
parent526c420f4591f0a58f805b473fa76d3da2981eae (diff)
newOS4: interactive AI course (terminal module, portal, atlas, telemetry, daily maintenance+cron) + free store card
Diffstat (limited to 'course/projects')
-rw-r--r--course/projects/daily-digest.json38
-rw-r--r--course/projects/notes-bot.json39
-rw-r--r--course/projects/sync-backup.json38
3 files changed, 115 insertions, 0 deletions
diff --git a/course/projects/daily-digest.json b/course/projects/daily-digest.json
new file mode 100644
index 0000000..e78ad46
--- /dev/null
+++ b/course/projects/daily-digest.json
@@ -0,0 +1,38 @@
+{
+ "id": "daily-digest",
+ "title": "Automated daily digest",
+ "level": "intermediate",
+ "minutes": 25,
+ "goal": "Schedule a repeating web fetch, save the result to a file, and inspect it.",
+ "lesson": "7.1",
+ "steps": [
+ {
+ "instruction": "Fetch a page and confirm output",
+ "command": "fetch https://example.com",
+ "check": {
+ "type": "command"
+ }
+ },
+ {
+ "instruction": "Schedule a 60s echo so you can see cron work",
+ "command": "cron-every 60 echo digest",
+ "check": {
+ "type": "command"
+ }
+ },
+ {
+ "instruction": "List the schedule",
+ "command": "cron-list",
+ "check": {
+ "type": "command"
+ }
+ },
+ {
+ "instruction": "Stop the job after one run",
+ "command": "cron-stop 1",
+ "check": {
+ "type": "command"
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/course/projects/notes-bot.json b/course/projects/notes-bot.json
new file mode 100644
index 0000000..53f8230
--- /dev/null
+++ b/course/projects/notes-bot.json
@@ -0,0 +1,39 @@
+{
+ "id": "notes-bot",
+ "title": "Personal notes with AI summaries",
+ "level": "beginner",
+ "minutes": 20,
+ "goal": "Create a notes folder, write a note, ask the AI to summarize it, and export it.",
+ "lesson": "1.2",
+ "steps": [
+ {
+ "instruction": "Create the notes folder",
+ "command": "mkdir notes",
+ "check": {
+ "type": "command"
+ }
+ },
+ {
+ "instruction": "Create a note file",
+ "command": "touch notes/today.txt",
+ "check": {
+ "type": "file",
+ "path": "/notes/today.txt"
+ }
+ },
+ {
+ "instruction": "Open it in the editor and write 3 lines",
+ "command": "edit notes/today.txt",
+ "check": {
+ "type": "manual"
+ }
+ },
+ {
+ "instruction": "Ask the AI to summarize the note",
+ "command": "ai summarize /notes/today.txt",
+ "check": {
+ "type": "manual"
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/course/projects/sync-backup.json b/course/projects/sync-backup.json
new file mode 100644
index 0000000..20c950d
--- /dev/null
+++ b/course/projects/sync-backup.json
@@ -0,0 +1,38 @@
+{
+ "id": "sync-backup",
+ "title": "Cloud backup with WebDAV",
+ "level": "intermediate",
+ "minutes": 30,
+ "goal": "Log in, check the space, push the VFS, and create a restorable backup.",
+ "lesson": "6.2",
+ "steps": [
+ {
+ "instruction": "Check the WebDAV state",
+ "command": "webdav-status",
+ "check": {
+ "type": "command"
+ }
+ },
+ {
+ "instruction": "Log in inside THIS browser if a push 401s",
+ "command": "webdav-login",
+ "check": {
+ "type": "manual"
+ }
+ },
+ {
+ "instruction": "Push the VFS",
+ "command": "webdav-push",
+ "check": {
+ "type": "manual"
+ }
+ },
+ {
+ "instruction": "Create a backup",
+ "command": "webdav-backup",
+ "check": {
+ "type": "command"
+ }
+ }
+ ]
+} \ No newline at end of file