{"id":35910717,"url":"https://github.com/itkan-robotics/mantik","last_synced_at":"2026-05-15T01:37:03.400Z","repository":{"id":302893849,"uuid":"1010851573","full_name":"itkan-robotics/mantik","owner":"itkan-robotics","description":"Comprehensive Java learning platform for robotics teams and programming enthusiasts. Interactive web-based training covering Java fundamentals, FTC/FRC robotics programming, and competitive coding.","archived":false,"fork":false,"pushed_at":"2026-02-15T15:54:05.000Z","size":6562,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-15T22:51:29.180Z","etag":null,"topics":["competitive-programming","frc","ftc","java-education"],"latest_commit_sha":null,"homepage":"https://mantik.netlify.app/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itkan-robotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-29T23:32:43.000Z","updated_at":"2026-02-15T15:54:08.000Z","dependencies_parsed_at":"2025-07-04T17:04:00.166Z","dependency_job_id":null,"html_url":"https://github.com/itkan-robotics/mantik","commit_stats":null,"previous_names":["itkan-robotics/java-training","itkan-robotics/mantik"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/itkan-robotics/mantik","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itkan-robotics%2Fmantik","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itkan-robotics%2Fmantik/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itkan-robotics%2Fmantik/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itkan-robotics%2Fmantik/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itkan-robotics","download_url":"https://codeload.github.com/itkan-robotics/mantik/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itkan-robotics%2Fmantik/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33050420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["competitive-programming","frc","ftc","java-education"],"created_at":"2026-01-10T03:29:02.126Z","updated_at":"2026-05-15T01:37:03.393Z","avatar_url":"https://github.com/itkan-robotics.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mantik\n\nWeb-based programming and robotics learning platform for FTC/FRC teams. Content is stored as JSON files—to add or edit pages, create or modify JSON in `data/` and wire it into the navigation configs.\n\n## Quick Start\n\n```bash\nnpm install\nnpx http-server -p 8000 -c-1\n```\n\nOpen http://localhost:8000. Or use Python: `python -m http.server 8000`. Or right-click `index.html` → Open with Live Server (VS Code).\n\n## Adding or Editing a Page\n\n### 1. Create or edit the content file\n\nContent lives in `data/` under section folders (e.g. `data/java/java-basics/`, `data/frc/command-based/`). Each page is a JSON file:\n\n```json\n{\n  \"id\": \"my-page-id\",\n  \"title\": \"Page Title\",\n  \"sections\": [\n    {\n      \"type\": \"text\",\n      \"title\": \"Section Title\",\n      \"content\": \"HTML content with \u003cstrong\u003eformatting\u003c/strong\u003e\"\n    }\n  ]\n}\n```\n\n### 2. Add the page to navigation\n\nUpdate the section config in `data/config/`. Config files map sections to the sidebar:\n\n- **Java**: `java-training-config.json`\n- **FRC**: `frc-specific-config.json`\n- **FTC**: `ftc-specific-config.json`\n- **Competitive**: `competitive-training-config.json`\n\nAdd your page to the right `groups[].items[]`:\n\n```json\n{\n  \"id\": \"my-page-id\",\n  \"label\": \"Page Label in Sidebar\",\n  \"file\": \"data/section-folder/my-page.json\",\n  \"difficulty\": \"beginner\",\n  \"duration\": \"20 min\"\n}\n```\n\n`file` is the path from the project root. `difficulty` and `duration` are optional.\n\n### 3. Create the folder if needed\n\nIf the section folder doesn’t exist, create it under `data/` (e.g. `data/java/java-basics/`).\n\n---\n\n## Section Types (Content Blocks)\n\nUse these `type` values in `sections`:\n\n| Type | Purpose |\n|------|---------|\n| `text` | Paragraphs with HTML. Uses `title`, `content`. |\n| `list` | Bullet list. Uses `title` (optional), `items` (array of strings). |\n| `code` | Code block with syntax highlighting. Uses `title`, `content`, `code`. |\n| `code-tabs` | Tabbed code examples. Uses `title`, `tabs` (array of `{label, code}`). |\n| `rules-box` | Highlighted rules. Uses `title`, `subtitle`, `items`, plus optional `goodPractices` and `avoid` arrays. |\n| `steps-box` | Numbered steps. Uses `title`, `items`. |\n| `exercise-box` | Practice with show/hide answers. Uses `title`, `subtitle`, `content` (starter code), `tasks`, `answers` (array of `{task, content}`). |\n| `table` | Data table. Uses `title`, `headers`, `rows`. |\n| `link-grid` | Links to other pages or URLs. Uses `title`, `links` (array of `{label, id}` for internal or `{label, url}` for external). |\n| `emphasis-box` | Styled like `rules-box`. Uses same fields. |\n| `data-types-grid` | Data type comparison cards. |\n| `logical-operators` | Operator reference table. |\n\n---\n\n## Adding a New Section\n\n1. **Create config file**  \n   Add `data/config/my-section-config.json` with `title`, optional `sections` (landing content), and `groups`:\n\n   ```json\n   {\n     \"id\": \"my-section\",\n     \"title\": \"My Section\",\n     \"groups\": [\n       {\n         \"id\": \"group-id\",\n         \"label\": \"Group Label\",\n         \"items\": [\n           {\n             \"id\": \"first-page\",\n             \"label\": \"First Page\",\n             \"file\": \"data/my-section/first-page.json\"\n           }\n         ]\n       }\n     ]\n   }\n   ```\n\n2. **Register in main config**  \n   Edit `data/config/config.json` and add to `sections`:\n\n   ```json\n   \"my-section\": {\n     \"id\": \"my-section\",\n     \"label\": \"My Section\",\n     \"file\": \"data/config/my-section-config.json\",\n     \"sidebarEnabled\": true\n   }\n   ```\n\n3. **Create content folder**  \n   Add `data/my-section/` and put your JSON page files there.\n\n---\n\n## File Layout\n\n```\ndata/\n├── config/           # Section configs (navigation)\n│   ├── config.json   # Main app config (registers sections)\n│   └── *-config.json # Per-section nav and landing content\n├── java/             # Java training pages\n├── frc/              # FRC training pages\n├── ftc/              # FTC training pages\n└── comp/             # Competitive coding pages\n```\n\n---\n\n## References\n\n- **Styling**: `STYLING_GUIDE.md`\n- **Deployment**: `DEPLOYMENT_CHECKLIST.md`, `NETLIFY_DEPLOYMENT.md`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitkan-robotics%2Fmantik","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitkan-robotics%2Fmantik","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitkan-robotics%2Fmantik/lists"}