diff options
| author | Agando <roduccomm@gmail.com> | 2026-10-18 14:05:18 +0200 |
|---|---|---|
| committer | Agando <roduccomm@gmail.com> | 2026-10-18 14:05:18 +0200 |
| commit | 0d0d936e7b5cd41a31773069540b1ddb8836ef44 (patch) | |
| tree | 273e7ee9a72453655119bf0f63efb9b61e193d7f /course/projects | |
| parent | 526c420f4591f0a58f805b473fa76d3da2981eae (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.json | 38 | ||||
| -rw-r--r-- | course/projects/notes-bot.json | 39 | ||||
| -rw-r--r-- | course/projects/sync-backup.json | 38 |
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 |