{"id":4804,"date":"2026-07-03T09:56:38","date_gmt":"2026-07-03T09:56:38","guid":{"rendered":"https:\/\/hub.paper-checker.com\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/"},"modified":"2026-07-03T09:56:38","modified_gmt":"2026-07-03T09:56:38","slug":"how-to-integrate-plagiarism-checker-api-application-lms","status":"publish","type":"post","link":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/","title":{"rendered":"Jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS"},"content":{"rendered":"<p>Integrace rozhran\u00ed API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo syst\u00e9mu \u0159\u00edzen\u00ed u\u010den\u00ed (LMS) znamen\u00e1 p\u0159ipojen\u00ed va\u0161eho softwaru ke slu\u017eb\u011b detekce plagi\u00e1torstv\u00ed, aby bylo mo\u017en\u00e9 dokumenty odes\u00edlat programov\u011b, v\u00fdsledky se trvale vracet a zpr\u00e1vy generovat ve va\u0161em vlastn\u00edm rozhran\u00ed. Rozhran\u00ed API pro kontrolu plagi\u00e1t\u016f funguje jako most mezi va\u0161\u00ed aplikac\u00ed a extern\u00edm detek\u010dn\u00edm engine \u2013 v\u00e1\u0161 syst\u00e9m odes\u00edl\u00e1 soubory nebo text, slu\u017eba je porovn\u00e1v\u00e1 s datab\u00e1zemi a vrac\u00ed zpr\u00e1vu o podobnosti a va\u0161e aplikace zobrazuje v\u00fdsledky u\u017eivatel\u016fm.<\/p>\n<p>Tento druh integrace odstra\u0148uje t\u0159en\u00ed v ru\u010dn\u00edch odes\u00edl\u00e1n\u00ed a umo\u017e\u0148uje, aby se kontrola plagi\u00e1torstv\u00ed bez probl\u00e9m\u016f prob\u00edhala v r\u00e1mci pracovn\u00edho postupu, kde ji\u017e studenti a instrukto\u0159i jsou.<\/p>\n<h2>\u010dty\u0159i integra\u010dn\u00ed vzory<\/h2>\n<p>Existuj\u00ed \u010dty\u0159i prim\u00e1rn\u00ed vzorce pro integraci kontroly plagi\u00e1torstv\u00ed do vzd\u011bl\u00e1vac\u00edch platforem. Ka\u017ed\u00fd z nich slou\u017e\u00ed k jin\u00fdm technick\u00fdm pot\u0159eb\u00e1m a \u00farovn\u00edm slo\u017eitosti.<\/p>\n<h3>Vzor 1: Integrace REST API<\/h3>\n<p>Integrace REST API spojuje va\u0161i vlastn\u00ed aplikaci nebo web se slu\u017ebou detekce plagi\u00e1t\u016f prost\u0159ednictv\u00edm standardn\u00edch po\u017eadavk\u016f HTTP. V\u00e1\u0161 syst\u00e9m odes\u00edl\u00e1 dokumenty p\u0159es u\u017eite\u010dn\u00e9 zat\u00ed\u017een\u00ed JSON, p\u0159ij\u00edm\u00e1 zpr\u00e1vy o podobnosti ve form\u00e1tu JSON a zpracov\u00e1v\u00e1 odpov\u011bdi ve va\u0161\u00ed vlastn\u00ed k\u00f3dov\u00e9 z\u00e1kladn\u011b. Tento vzor nab\u00edz\u00ed maxim\u00e1ln\u00ed flexibilitu \u2013 ovl\u00e1d\u00e1te u\u017eivatelsk\u00e9 rozhran\u00ed, tok odesl\u00e1n\u00ed a prezentaci v\u00fdsledk\u016f. Nejl\u00e9pe funguje pro vlastn\u00ed webov\u00e9 aplikace, n\u00e1stroje t\u0159et\u00edch stran nebo platformy, kter\u00e9 p\u0159esn\u011b nezapadaj\u00ed do standardn\u00edch ekosyst\u00e9m\u016f LMS.<\/p>\n<h3>Vzor 2: Integrace LTI 1.3<\/h3>\n<p>Learning Tools Interoperability (LTI) je otev\u0159en\u00fd standard pro propojen\u00ed vzd\u011bl\u00e1vac\u00edch n\u00e1stroj\u016f s platformami LMS. LTI 1.3 p\u0159edstavilo autoriza\u010dn\u00ed tok OAuth 2.0 a hlubok\u00e9 propojen\u00ed, co\u017e z n\u011bj \u010din\u00ed modern\u00ed standard pro bezpe\u010dn\u00e9 integrace. Pro detekci plagi\u00e1torstv\u00ed umo\u017e\u0148uje LTI 1.3 spustit va\u0161i slu\u017ebu jako n\u00e1stroj v r\u00e1mci LMS, p\u0159ij\u00edmat kontext p\u0159i\u0159azen\u00ed, odes\u00edlat soubory ke kontrole a vr\u00e1tit v\u00fdsledky zp\u011bt do klasifika\u010dn\u00ed knihy LMS. Tento vzorec je nejlep\u0161\u00ed pro poskytovatele, kte\u0159\u00ed cht\u011bj\u00ed, aby se jejich n\u00e1stroj nativn\u011b objevoval uvnit\u0159 pl\u00e1tna, tabule nebo Moodle, ani\u017e by museli studenti opustit svou platformu.<\/p>\n<h3>Vzor 3: Plugin Moodle Plagiarism<\/h3>\n<p>Moodle m\u00e1 vyhrazen\u00fd subsyst\u00e9m plagi\u00e1torstv\u00ed, kter\u00fd umo\u017e\u0148uje plugin\u016fm integrovat se p\u0159\u00edmo do pracovn\u00edch postup\u016f a p\u0159id\u011blov\u00e1n\u00ed. Plugin Moodle Plagiarism se zaregistruje jako obslu\u017en\u00fd program v rozhran\u00ed Moodle Plagiarism API, zobraz\u00ed se jako mo\u017enost odevzd\u00e1n\u00ed, kdy\u017e u\u010ditel\u00e9 vytv\u00e1\u0159ej\u00ed \u00fakoly, automaticky p\u0159ij\u00edmaj\u00ed soubory, spou\u0161t\u011bj\u00ed kontroly a vrac\u00ed sk\u00f3re p\u0159\u00edmo do klasifika\u010dn\u00ed knihy. Tento vzor je nejlep\u0161\u00ed pro v\u00fdvoj\u00e1\u0159e a instituce plugin\u016f, kter\u00e9 vy\u017eaduj\u00ed hlubokou integraci Moodle-Native s minim\u00e1ln\u00edm vlastn\u00edm v\u00fdvojem.<\/p>\n<h3>Vzor 4: Integrace Blackboard \/ BrightSpace<\/h3>\n<p>Blackboard (nyn\u00ed Open LMS \/ BrightSpace) podporuje detekci plagi\u00e1torstv\u00ed prost\u0159ednictv\u00edm sv\u00e9ho pluginu Plagiarism, kter\u00fd poskytuje API pro p\u0159edkl\u00e1d\u00e1n\u00ed dokument\u016f a z\u00edsk\u00e1v\u00e1n\u00ed zpr\u00e1v. Instituce pou\u017e\u00edvaj\u00edc\u00ed Blackboard obvykle instaluj\u00ed plugin pro detekci plagi\u00e1t\u016f od podporovan\u00e9ho poskytovatele, nakonfiguruj\u00ed jej prost\u0159ednictv\u00edm administr\u00e1torsk\u00e9ho rozhran\u00ed a plugin zpracov\u00e1v\u00e1 zobrazov\u00e1n\u00ed soubor\u016f a zobrazen\u00ed v\u00fdsledk\u016f v prost\u0159ed\u00ed Blackboard. Tento vzor je nejlep\u0161\u00ed pro instituce, kter\u00e9 cht\u011bj\u00ed spravovan\u00e9 \u0159e\u0161en\u00ed plugin\u016f sp\u00ed\u0161e ne\u017e vlastn\u00ed v\u00fdvoj.<\/p>\n<h2>Srovn\u00e1n\u00ed integra\u010dn\u00edch vzor\u016f<\/h2>\n<table>\n<thead>\n<tr>\n<th>Integra\u010dn\u00ed vzor<\/th>\n<th>Plo\u0161ina<\/th>\n<th>Slo\u017eitost<\/th>\n<th>nejlep\u0161\u00ed pro<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Integrace REST API<\/td>\n<td>Vlastn\u00ed aplikace, webov\u00e9 str\u00e1nky<\/td>\n<td>N\u00edzk\u00fd<\/td>\n<td>V\u00fdvoj\u00e1\u0159i vytv\u00e1\u0159ej\u00edc\u00ed vlastn\u00ed aplikace nebo webov\u00e9 str\u00e1nky, kter\u00e9 pot\u0159ebuj\u00ed kontrolu plagi\u00e1torstv\u00ed jako slu\u017ebu<\/td>\n<\/tr>\n<tr>\n<td>Integrace LTI 1.3<\/td>\n<td>Pl\u00e1tno, tabule, Moodle<\/td>\n<td>St\u0159edn\u00ed<\/td>\n<td>Poskytovatel\u00e9, kte\u0159\u00ed cht\u011bj\u00ed, aby se jejich n\u00e1stroj nativn\u011b spustil v r\u00e1mci LMS s pln\u00fdm jednotn\u00fdm jednotn\u00fdm autem a integrac\u00ed Gradebook<\/td>\n<\/tr>\n<tr>\n<td>Plugin Moodle Plagiarism<\/td>\n<td>Moodle<\/td>\n<td>st\u0159edn\u011b vysok\u00e1<\/td>\n<td>V\u00fdvoj\u00e1\u0159i plugin\u016f se zam\u011b\u0159uj\u00ed na ekosyst\u00e9m Moodle s integrac\u00ed hlubok\u00e9ho Gradebook<\/td>\n<\/tr>\n<tr>\n<td>Integrace Blackboard \/ BrightSpace<\/td>\n<td>Blackboard \/ BrightSpace<\/td>\n<td>N\u00edzko-st\u0159edn\u00ed<\/td>\n<td>instituce pou\u017e\u00edvaj\u00edc\u00ed Blackboard, kter\u00e9 cht\u011bj\u00ed spravovan\u00e9 \u0159e\u0161en\u00ed plugin\u016f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Co doporu\u010dujeme:<\/strong> Pokud vytv\u00e1\u0159\u00edte vlastn\u00ed aplikaci, pou\u017eijte integraci REST API. Pou\u017eijte LTI 1.3, pokud jste poskytovatel, kter\u00fd se chce integrovat do v\u00edce LMS s jedinou k\u00f3dovou z\u00e1kladnou. Plugin Moodle Plagiarism pou\u017e\u00edvejte pouze v p\u0159\u00edpad\u011b, \u017ee se konkr\u00e9tn\u011b zam\u011b\u0159\u00edte na instituce Moodle. Pou\u017eijte integraci Blackboard pro instituce, kter\u00e9 vy\u017eaduj\u00ed nativn\u00ed podporu Blackboard bez vlastn\u00edho v\u00fdvoje.<\/p>\n<h2>Integrace REST API \u2013 krok za krokem s Pythonem<\/h2>\n<p>Integrace REST API se \u0159\u00edd\u00ed p\u0159\u00edm\u00fdm vzorem po\u017eadavku a odpov\u011bdi. Va\u0161e aplikace odes\u00edl\u00e1 dokumenty do slu\u017eby detekce plagi\u00e1torstv\u00ed, obdr\u017e\u00ed odpov\u011b\u010f a zpracuje v\u00fdsledky. Zde je n\u00e1vod, jak tento proces obvykle funguje.<\/p>\n<h3>Krok 1: Autentizace kl\u00ed\u010de API<\/h3>\n<p>V\u011bt\u0161ina rozhran\u00ed API pro detekci plagi\u00e1t\u016f pou\u017e\u00edv\u00e1 autentizaci kl\u00ed\u010de API. Va\u0161e aplikace obsahuje kl\u00ed\u010d API v hlavi\u010dk\u00e1ch po\u017eadavk\u016f pro ka\u017ed\u00fd hovor. T\u00edm je zaji\u0161t\u011bno, \u017ee dokumenty mohou p\u0159edkl\u00e1dat pouze autorizovan\u00e9 aplikace.<\/p>\n<pre>&lt;code&gt;import requests\nimport json\n\nAPI_KEY = \"your-api-key-here\"\nENDPOINT = \"https:\/\/api.plagiarism-checker-service.com\/v1\/check\"\n\nheaders = {\n  \"X-API-Key\": API_KEY,\n  \"Content-Type\": \"application\/json\"\n}\n&lt;\/code&gt;<\/pre>\n<h3>Krok 2: Odesl\u00e1n\u00ed dokumentu<\/h3>\n<p>Ode\u0161lete dokument odesl\u00e1n\u00edm u\u017eite\u010dn\u00e9ho zat\u00ed\u017een\u00ed JSON obsahuj\u00edc\u00edho text dokumentu, metadata a voliteln\u00e9 parametry.<\/p>\n<pre>&lt;code&gt;def submit_document(text, document_name, course_id=None):\n  payload = {\n  \"text\": text,\n  \"filename\": document_name,\n  \"course_id\": course_id,\n  \"source_type\": \"student_submission\"\n  }\n\n  response = requests.post(ENDPOINT, headers=headers, json=payload)\n  result = response.json()\n\n  if response.status_code == 200:\n  return result[\"report_id\"]\n  else:\n  raise Exception(f\"Submission failed: {result['error']}\")\n\n# Usage example\nreport_id = submit_document(\n  text=\"Your student's paper text here...\",\n  document_name=\"student_paper_2026.docx\",\n  course_id=\"CS101-2026\"\n)\n&lt;\/code&gt;<\/pre>\n<h3>Krok 3: Na\u010dten\u00ed zpr\u00e1vy<\/h3>\n<p>Po odesl\u00e1n\u00ed slu\u017eba vygeneruje zpr\u00e1vu. V z\u00e1vislosti na tom, zda API podporuje synchronn\u00ed nebo asynchronn\u00ed zpracov\u00e1n\u00ed, bu\u010f po\u010dk\u00e1te na odpov\u011b\u010f, nebo se dotazuj\u00ed na stav.<\/p>\n<pre>&lt;code&gt;def get_report_status(report_id):\n  status_url = f\"https:\/\/api.plagiarism-checker-service.com\/v1\/status\/{report_id}\"\n  response = requests.get(status_url, headers=headers)\n  return response.json()\n\n# Check report\nstatus = get_report_status(report_id)\nprint(f\"Report status: {status}\")\n&lt;\/code&gt;<\/pre>\n<h3>Krok 4: V\u00fdsledky zpracov\u00e1n\u00ed<\/h3>\n<p>API vrac\u00ed zpr\u00e1vu o podobnosti, kter\u00e1 obvykle obsahuje sk\u00f3re podobnosti, shody se zdroji a zv\u00fdrazn\u011bn\u00fd text.<\/p>\n<pre>&lt;code&gt;def process_report(report):\n  similarity_score = report.get(\"similarity_score\", 0)\n  sources = report.get(\"matches\", [])\n\n  print(f\"Similarity Score: {similarity_score}%\")\n  print(f\"Top Sources:\")\n\n  for source in sources[:5]:\n  print(f\"  - {source.get('source_name', 'Unknown')}\")\n  print(f\"  Match: {source.get('match_percentage', 0)}%\")\n&lt;\/code&gt;<\/pre>\n<p>Tento vzor REST API v\u00e1m poskytuje \u00faplnou kontrolu nad tokem odesl\u00e1n\u00ed, zobrazen\u00edm v\u00fdsledk\u016f a u\u017eivatelskou zku\u0161enost\u00ed. Kompromisem je, \u017ee celou integraci mus\u00edte zvl\u00e1dnout sami.<\/p>\n<h2>Integrace Canvas LTI 1.3 \u2014 Nastaven\u00ed toku a ov\u011b\u0159ov\u00e1n\u00ed JWT<\/h2>\n<p>Canvas je jednou z nejroz\u0161\u00ed\u0159en\u011bj\u0161\u00edch platforem LMS a integrace n\u00e1stroje pro detekci plagi\u00e1t\u016f prost\u0159ednictv\u00edm LTI 1.3 poskytuje nejhlub\u0161\u00ed mo\u017enou nativn\u00ed integraci.<\/p>\n<h3>Pochopen\u00ed LTI 1.3 v pl\u00e1tn\u011b<\/h3>\n<p>LTI 1.3 (p\u0159ist\u00e1n\u00ed) nahradil star\u0161\u00ed standard LTI 1.1.2 robustn\u011bj\u0161\u00edm autoriza\u010dn\u00edm modelem. K autentizaci pou\u017e\u00edv\u00e1 OAuth 2.0 s JWT (JSON Web Tokens), d\u00edky \u010demu\u017e je bezpe\u010dn\u011bj\u0161\u00ed ne\u017e p\u0159\u00edstup ke kl\u00ed\u010d\u016fm API. N\u00e1stroje Canvas LTI 1.3 se spou\u0161t\u011bj\u00ed do r\u00e1mce LMS, p\u0159ij\u00edmaj\u00ed kontext p\u0159i\u0159azen\u00ed, odes\u00edlaj\u00ed dokumenty a vracej\u00ed v\u00fdsledky zp\u011bt do klasifika\u010dn\u00ed knihy.<\/p>\n<h3>Nastaven\u00ed toku<\/h3>\n<p><strong>1. Vytvo\u0159te kl\u00ed\u010d LTI 1.3 v Canvas:<\/strong> P\u0159ejd\u011bte do Nastaven\u00ed \u2192 Aplikace \u2192 Nakonfigurujte novou aplikaci. Canvas generuje ID klienta a tajemstv\u00ed.<\/p>\n<p><strong>2. Konfigurace hlubok\u00e9ho propojen\u00ed:<\/strong> Nastavte adresu URL spou\u0161t\u011bn\u00ed LTI a adresy URL zp\u011btn\u00e9ho vol\u00e1n\u00ed. Canvas odes\u00edl\u00e1 tyto parametry p\u0159i spou\u0161t\u011bn\u00ed va\u0161eho n\u00e1stroje.<\/p>\n<p><strong>3. Implementujte ov\u011b\u0159en\u00ed JWT:<\/strong> Kdy\u017e Canvas spust\u00ed v\u00e1\u0161 n\u00e1stroj, ode\u0161le u\u017eite\u010dn\u00e9 zat\u00ed\u017een\u00ed JWT obsahuj\u00edc\u00ed u\u017eivatelsk\u00fd kontext, ID \u00fakolu a informace o kurzu. Va\u0161e aplikace mus\u00ed ov\u011b\u0159it podpis JWT pomoc\u00ed klientsk\u00e9ho tajemstv\u00ed.<\/p>\n<pre>&lt;code&gt;import jwt\n\ndef verify_canvas_jwt(jwt_token, client_secret):\n  try:\n  payload = jwt.decode(\n  jwt_token,\n  client_secret,\n  algorithms=[\"RS256\"],\n  audience=\"your-canvas-client-id\"\n  )\n  return payload\n  except jwt.ExpiredSignatureError:\n  raise Exception(\"Token expired\")\n  except jwt.InvalidTokenError:\n  raise Exception(\"Invalid token\")\n\n# Usage\ntry:\n  user_context = verify_canvas_jwt(jwt_token, client_secret)\n  assignment_id = user_context.get(\"custom\", {}).get(\"assignment_id\")\n  course_id = user_context.get(\"custom\", {}).get(\"context_id\")\nexcept Exception as e:\n  raise Exception(f\"JWT verification failed: {e}\")\n&lt;\/code&gt;<\/pre>\n<p><strong>4. Ode\u0161lete soubory p\u0159es Canvas API:<\/strong> Jakmile budete m\u00edt kontext p\u0159i\u0159azen\u00ed, pou\u017eijte Canvas API k na\u010dten\u00ed p\u0159\u00edsp\u011bvk\u016f student\u016f a odes\u00edl\u00e1n\u00ed dokument\u016f do va\u0161\u00ed slu\u017eby detekce plagi\u00e1torstv\u00ed.<\/p>\n<p><strong>5. Vra\u0165te v\u00fdsledky:<\/strong> Zve\u0159ejn\u011bte zpr\u00e1vu o podobnosti zp\u011bt na Canvas prost\u0159ednictv\u00edm rozhran\u00ed Gradebook API nebo vlastn\u00edho odkazu LTI, aby si instrukto\u0159i mohli prohl\u00ed\u017eet v\u00fdsledky p\u0159\u00edmo ve sv\u00e9 klasifika\u010dn\u00ed knize.<\/p>\n<h3>Webhooky na platform\u011b pro detekci plagi\u00e1t\u016f na pl\u00e1tn\u011b<\/h3>\n<p>Canvas nab\u00edz\u00ed vyhrazenou platformu pro detekci plagi\u00e1t\u016f s p\u0159edplatn\u00fdmi webhooku pro modern\u00ed integrace. Tento p\u0159\u00edstup umo\u017e\u0148uje va\u0161\u00ed slu\u017eb\u011b p\u0159ihl\u00e1sit se k odb\u011bru ud\u00e1lost\u00ed plagi\u00e1torstv\u00ed a po dokon\u010den\u00ed kontrol p\u0159ij\u00edmat upozorn\u011bn\u00ed na webhookem, \u010d\u00edm\u017e se eliminuje pot\u0159eba dotazov\u00e1n\u00ed.<\/p>\n<p>Tok p\u0159edplatn\u00e9ho webhooku zahrnuje:<\/p>\n<ul>\n<li>P\u0159ihl\u00e1\u0161en\u00ed k odb\u011bru ud\u00e1lost\u00ed kontroly plagi\u00e1torstv\u00ed p\u0159es pl\u00e1t\u011bn\u00e9 rozhran\u00ed API<\/li>\n<li>P\u0159\u00edjem u\u017eite\u010dn\u00e9ho zat\u00ed\u017een\u00ed JSON, kdy\u017e je dokon\u010dena kontrola plagi\u00e1torstv\u00ed<\/li>\n<li>zpracov\u00e1n\u00ed zpr\u00e1vy a vr\u00e1cen\u00ed v\u00fdsledk\u016f na pl\u00e1tno<\/li>\n<\/ul>\n<p>Tento vzor webhook je doporu\u010den\u00fdm p\u0159\u00edstupem pro nov\u00e9 integrace s Canvas, proto\u017ee sni\u017euje latenci a zat\u00ed\u017een\u00ed serveru ve srovn\u00e1n\u00ed s dotazov\u00e1n\u00edm.<\/p>\n<h2>Plugin Moodle Plagiarism \u2014 Vzor v\u00fdvoj pluginu<\/h2>\n<p>Moodle poskytuje subsyst\u00e9m plagi\u00e1torstv\u00ed, kter\u00fd umo\u017e\u0148uje plugin\u016fm t\u0159et\u00edch stran integrovat se p\u0159\u00edmo do pracovn\u00edch postup\u016f a pracovn\u00edch postup\u016f p\u0159i\u0159azen\u00ed. Plugin Moodle Plagiarism se \u0159\u00edd\u00ed dob\u0159e definovan\u00fdm vzorem v\u00fdvoje.<\/p>\n<h3>Architektura pluginu Moodle Plagiarism<\/h3>\n<p>Plugin Moodle Plagiarism se zaregistruje u Moodle Plagiarism API a objev\u00ed se jako mo\u017enost odevzd\u00e1n\u00ed, kdy\u017e u\u010ditel\u00e9 vytv\u00e1\u0159ej\u00ed \u00fakoly. Plugin mus\u00ed implementovat konkr\u00e9tn\u00ed funkce obslu\u017en\u00e9 rutiny, kter\u00e9 Moodle vol\u00e1 b\u011bhem \u017eivotn\u00edho cyklu odesl\u00e1n\u00ed.<\/p>\n<pre>&lt;code&gt;\/\/ Example Moodle plagiarism plugin structure\n\nclass plagiarism_plugin_your_plugin extends plagiarism_plugin_base {\n\n  public function check($submission) {\n  \/\/ Retrieve the submitted file from the submission\n  \/\/ Send it to your plagiarism detection service\n  \/\/ Return a score and report\n  return $this-&gt;check_plagiarism($submission);\n  }\n\n  public function get_report_html($submission) {\n  \/\/ Return the HTML report for the Gradebook\n  return $this-&gt;generate_report_html($submission);\n  }\n\n  public function delete_submitted_files($submission) {\n  \/\/ Clean up files after check\n  $this-&gt;cleanup_files($submission);\n  }\n}\n&lt;\/code&gt;<\/pre>\n<h3>Vzor v\u00fdvoje pluginu<\/h3>\n<ol>\n<li><strong>Zaregistrujte plugin:<\/strong> P\u0159idejte sv\u016fj plugin do subsyst\u00e9mu Plagiarism Moodle implementac\u00ed z\u00e1kladn\u00ed t\u0159\u00eddy a registrac\u00ed v adres\u00e1\u0159i <code>db\/<\/code> va\u0161eho pluginu.<\/li>\n<li><strong>Zpracovat zad\u00e1n\u00ed p\u0159i\u0159azen\u00ed:<\/strong> Implementujte metodu <code>check()<\/code>, abyste mohli p\u0159ij\u00edmat odeslan\u00e9 soubory z modulu p\u0159i\u0159azen\u00ed Moodle, odeslat je do slu\u017eby detekce plagi\u00e1t\u016f a z\u00edskat sk\u00f3re podobnosti.<\/li>\n<li><strong>Generovat sestavy:<\/strong> Implementujte <code>get_report_html()<\/code> Chcete-li vr\u00e1tit form\u00e1tovanou zpr\u00e1vu o podobnosti, kterou m\u016f\u017ee Moodle zobrazit v zobrazen\u00ed klasifika\u010dn\u00ed knihy nebo p\u0159i\u0159azen\u00ed.<\/li>\n<li><strong>Spr\u00e1va vy\u010di\u0161t\u011bn\u00ed soubor\u016f:<\/strong> Implementujte <code>DELETE_SUBMITTED_FILES()<\/code> Chcete-li zpracovat smaz\u00e1n\u00ed dokument\u016f, kdy\u017e jsou p\u0159i\u0159azen\u00ed hodnocena a data studenta archivov\u00e1na.<\/li>\n<li><strong>Integrujte se s hodnocen\u00edm:<\/strong> Vra\u0165te sk\u00f3re do Gradebook Moodle, aby instrukto\u0159i vid\u011bli v\u00fdsledky podobnosti spolu s jejich pracovn\u00edm postupem hodnocen\u00ed.<\/li>\n<\/ol>\n<p>Tento vzorec poskytuje hlubokou integraci \u2013 kontrola plagi\u00e1torstv\u00ed prob\u00edh\u00e1 automaticky, kdy\u017e studenti odevzdaj\u00ed \u00fakoly, v\u00fdsledky se objev\u00ed p\u0159\u00edmo v klasifika\u010dn\u00ed knize a nen\u00ed nutn\u00fd \u017e\u00e1dn\u00fd ru\u010dn\u00ed z\u00e1sah. Kompromisem je, \u017ee v\u00fdvoj plugin\u016f Moodle vy\u017eaduje znalost PHP a znalost architektury Moodle.<\/p>\n<h2>Asynchronn\u00ed zpracov\u00e1n\u00ed a webhooky \u2013 modern\u00ed standard<\/h2>\n<p>Pro produk\u010dn\u00ed aplikace, kter\u00e9 zpracov\u00e1vaj\u00ed velk\u00e9 objemy p\u0159\u00edsp\u011bvk\u016f, vytv\u00e1\u0159ej\u00ed synchronn\u00ed vol\u00e1n\u00ed API \u00fazk\u00e1 m\u00edsta. Asynchronn\u00ed zpracov\u00e1n\u00ed s upozorn\u011bn\u00edmi na webhook je modern\u00edm standardem pro aplikace pro kontrolu plagi\u00e1t\u016f s velk\u00fdm objemem.<\/p>\n<h3>Pro\u010d z\u00e1le\u017e\u00ed na asynchronn\u00edch + webhooc\u00edch<\/h3>\n<p>Kdy\u017e student ode\u0161le pr\u00e1ci, jeho synchronn\u00ed zpracov\u00e1n\u00ed m\u016f\u017ee trvat n\u011bkolik sekund. V aplikac\u00edch, kter\u00e9 zpracov\u00e1vaj\u00ed stovky p\u0159\u00edsp\u011bvk\u016f za hodinu, synchronn\u00ed zpracov\u00e1n\u00ed znamen\u00e1, \u017ee u\u017eivatel\u00e9 \u010dekaj\u00ed. Asynchronn\u00ed vzor \u0159e\u0161\u00ed toto:<\/p>\n<ul>\n<li>Okam\u017eit\u00e9 p\u0159ij\u00edm\u00e1n\u00ed p\u0159\u00edsp\u011bvk\u016f<\/li>\n<li>asynchronn\u011b zpracov\u00e1vat dokumenty na serverech slu\u017eby<\/li>\n<li>Upozorn\u011bn\u00ed va\u0161\u00ed aplikace p\u0159es webhook po dokon\u010den\u00ed zpracov\u00e1n\u00ed<\/li>\n<li>Vr\u00e1cen\u00ed v\u00fdsledk\u016f do LMS nebo aplikace bez blokov\u00e1n\u00ed pracovn\u00edch postup\u016f u\u017eivatel\u016f<\/li>\n<\/ul>\n<h3>Nastaven\u00ed p\u0159edplatn\u00e9ho webhooku<\/h3>\n<p>P\u0159edplatn\u00e9 webhooku se \u0159\u00edd\u00ed standardn\u00edm vzorem:<\/p>\n<ol>\n<li><strong>Zaregistrujte koncov\u00e9 body webhooku:<\/strong> Va\u0161e aplikace zp\u0159\u00edstup\u0148uje koncov\u00fd bod HTTP, kter\u00fd p\u0159ij\u00edm\u00e1 upozorn\u011bn\u00ed na webhook.<\/li>\n<li><strong>P\u0159ihl\u00e1sit se k odb\u011bru ud\u00e1lost\u00ed:<\/strong> P\u0159ihlaste se k odb\u011bru ud\u00e1lost\u00ed Zkontrolujte plagi\u00e1ty prost\u0159ednictv\u00edm rozhran\u00ed API pro spr\u00e1vu webhooku slu\u017eby.<\/li>\n<li><strong>P\u0159ij\u00edmat a zpracov\u00e1vat webhooky:<\/strong> Po dokon\u010den\u00ed kontroly plagi\u00e1torstv\u00ed ode\u0161le slu\u017eba do va\u0161eho koncov\u00e9ho bodu webhooku po\u017eadavek POST s daty sestavy.<\/li>\n<li><strong>Ov\u011b\u0159te podpisy webhooku:<\/strong> Ov\u011b\u0159te p\u0159\u00edchoz\u00ed u\u017eite\u010dn\u00e9 zat\u00ed\u017een\u00ed webhooku pomoc\u00ed podpis\u016f HMAC nebo token\u016f JWT, abyste zajistili pravost.<\/li>\n<li><strong>Aktualizujte LMS nebo aplikaci:<\/strong> Jakmile webhook doraz\u00ed se zpr\u00e1vou, aktualizujte z\u00e1znam studenta, z\u00e1znam v z\u00e1znamov\u00e9 knize nebo datab\u00e1zi aplikac\u00ed.<\/li>\n<\/ol>\n<p>Tento vzor je nezbytn\u00fd pro v\u00fdrobn\u00ed syst\u00e9my. Eliminuje dotazov\u00e1n\u00ed, sni\u017euje vol\u00e1n\u00ed API o \u0159\u00e1dy a poskytuje doru\u010dov\u00e1n\u00ed v\u00fdsledk\u016f v re\u00e1ln\u00e9m \u010dase bez blokov\u00e1n\u00ed interakc\u00ed u\u017eivatele.<\/p>\n<h2>Architektura shody \u2014 Technick\u00e9 po\u017eadavky FERPA + GDPR<\/h2>\n<p>P\u0159i integraci detekce plagi\u00e1torstv\u00ed do vzd\u011bl\u00e1vac\u00edch aplikac\u00ed nen\u00ed dodr\u017eov\u00e1n\u00ed p\u0159edpis\u016f pr\u00e1vn\u00ed pozn\u00e1mkou pod \u010darou \u2013 je to z\u00e1kladn\u00ed architektonick\u00fd po\u017eadavek. FERPA a GDPR upravuj\u00ed, jak jsou vzd\u011bl\u00e1vac\u00ed data ukl\u00e1d\u00e1na, zpracov\u00e1v\u00e1na a sd\u00edlena.<\/p>\n<h3>Technick\u00e9 po\u017eadavky FERPA<\/h3>\n<p>Z\u00e1kon o rodinn\u00fdch vzd\u011bl\u00e1vac\u00edch pr\u00e1vech (FERPA) stanov\u00ed feder\u00e1ln\u00ed standardy pro z\u00e1znamy o vzd\u011bl\u00e1v\u00e1n\u00ed ve Spojen\u00fdch st\u00e1tech. Z pohledu technick\u00e9 architektury:<\/p>\n<ul>\n<li><strong>Minimalizace dat:<\/strong> Shroma\u017e\u010fujte a ukl\u00e1dejte pouze minim\u00e1ln\u00ed data pot\u0159ebn\u00e1 pro kontrolu plagi\u00e1torstv\u00ed. Neukl\u00e1dejte identifik\u00e1tory student\u016f nad r\u00e1mec toho, co je nezbytn\u00e9.<\/li>\n<li><strong>Uchov\u00e1v\u00e1n\u00ed dat:<\/strong> Implementujte z\u00e1sady automatick\u00e9ho maz\u00e1n\u00ed pro odeslan\u00e9 dokumenty a zpr\u00e1vy o podobnosti. Dokumenty by m\u011bly b\u00fdt po dokon\u010den\u00ed kontroly vymaz\u00e1ny, pokud instituce nevy\u017eaduje uchov\u00e1n\u00ed k p\u0159ezkoum\u00e1n\u00ed.<\/li>\n<li><strong>P\u0159enos dat:<\/strong> Ov\u011b\u0159te, \u017ee dokumenty jsou p\u0159en\u00e1\u0161eny p\u0159es TLS 1.2 nebo vy\u0161\u0161\u00ed. \u0160ifrov\u00e1n\u00ed v klidu mus\u00ed b\u00fdt aplikov\u00e1no na v\u0161echna ulo\u017een\u00e1 data.<\/li>\n<li><strong>Ovl\u00e1dac\u00ed prvky p\u0159\u00edstupu:<\/strong> Implementujte \u0159\u00edzen\u00ed p\u0159\u00edstupu na z\u00e1klad\u011b rol\u00ed (RBAC), aby mohli zobrazovat zpr\u00e1vy o podobnosti pouze opr\u00e1vn\u011bn\u00ed u\u017eivatel\u00e9 (instrukto\u0159i, spr\u00e1vci).<\/li>\n<\/ul>\n<h3>Technick\u00e9 po\u017eadavky GDPR<\/h3>\n<p>Obecn\u00e9 na\u0159\u00edzen\u00ed o ochran\u011b osobn\u00edch \u00fadaj\u016f (GDPR) se vztahuje na instituce zpracov\u00e1vaj\u00edc\u00ed \u00fadaje rezident\u016f EU. Po\u017eadavky GDPR zahrnuj\u00ed:<\/p>\n<ul>\n<li><strong>Z\u00e1konn\u00fd z\u00e1klad:<\/strong> Zdokumentujte z\u00e1konn\u00fd z\u00e1klad pro zpracov\u00e1n\u00ed (obvykle legitimn\u00ed z\u00e1jem nebo v\u00fdslovn\u00fd souhlas).<\/li>\n<li><strong>Dohoda o zpracov\u00e1n\u00ed dat (DPA):<\/strong> Prove\u010fte DPA se sv\u00fdm poskytovatelem slu\u017eeb detekce plagi\u00e1t\u016f, kter\u00fd nasti\u0148uje odpov\u011bdnosti za manipulaci s daty.<\/li>\n<li><strong>Pr\u00e1vo na vymaz\u00e1n\u00ed:<\/strong> Implementujte koncov\u00e9 body API nebo mechanismy, kter\u00e9 umo\u017e\u0148uj\u00ed maz\u00e1n\u00ed dat student\u016f na vy\u017e\u00e1d\u00e1n\u00ed.<\/li>\n<li><strong>Lokalizace dat:<\/strong> Ov\u011b\u0159te, zda v\u00e1\u0161 poskytovatel ukl\u00e1d\u00e1 data v EU nebo je p\u0159en\u00e1\u0161\u00ed ven. Pokud jsou mimo EU, ov\u011b\u0159te vhodn\u00e1 ochrann\u00e1 opat\u0159en\u00ed (standardn\u00ed smluvn\u00ed dolo\u017eky, rozhodnut\u00ed o p\u0159im\u011b\u0159enosti).<\/li>\n<li><strong>Privacy By Design:<\/strong> Vlo\u017ete ochranu dat do architektury syst\u00e9mu \u2013 minim\u00e1ln\u00ed sb\u011br dat, automatick\u00e9 maz\u00e1n\u00ed a jasn\u00e9 auditn\u00ed z\u00e1znamy.<\/li>\n<\/ul>\n<h3>Kontroln\u00ed seznam shody (Technick\u00e1 architektura)<\/h3>\n<table>\n<thead>\n<tr>\n<th>Po\u017eadavek<\/th>\n<th>Technick\u00e1 implementace<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>TLS \u0161ifrov\u00e1n\u00ed<\/td>\n<td>Pro v\u0161echna data v p\u0159enosu pou\u017eijte TLS 1.2+<\/td>\n<\/tr>\n<tr>\n<td>\u0160ifrov\u00e1n\u00ed v klidu<\/td>\n<td>\u0160ifrov\u00e1n\u00ed AES-256 pro ulo\u017een\u00e9 dokumenty a sestavy<\/td>\n<\/tr>\n<tr>\n<td>Automatizovan\u00e9 maz\u00e1n\u00ed<\/td>\n<td>Napl\u00e1novan\u00e9 \u00falohy, kter\u00e9 odstra\u0148uj\u00ed dokumenty po obdob\u00ed uchov\u00e1n\u00ed<\/td>\n<\/tr>\n<tr>\n<td>P\u0159\u00edstup zalo\u017een\u00fd na rol\u00edch<\/td>\n<td>RBAC s \u00farovn\u011bmi opr\u00e1vn\u011bn\u00ed (student, instruktor, admin)<\/td>\n<\/tr>\n<tr>\n<td>protokolov\u00e1n\u00ed auditu<\/td>\n<td>Nem\u011bnn\u00e9 protokoly o tom, kdy jsou dokumenty odes\u00edl\u00e1ny, zkontrolov\u00e1ny a zp\u0159\u00edstupn\u011bny<\/td>\n<\/tr>\n<tr>\n<td>Spr\u00e1va souhlasu<\/td>\n<td>Sledov\u00e1n\u00ed souhlasu u\u017eivatelsk\u00e9ho rozhran\u00ed a API pro spr\u00e1vu opt-out<\/td>\n<\/tr>\n<tr>\n<td>Ov\u011b\u0159en\u00ed p\u0159enosu dat<\/td>\n<td>Potvr\u010fte mechanismy a jurisdikce p\u0159enosu dat poskytovatele<\/td>\n<\/tr>\n<tr>\n<td>Ochrana osobn\u00edch \u00fadaj\u016f<\/td>\n<td>jasn\u00e9 z\u00e1sady ochrany osobn\u00edch \u00fadaj\u016f zve\u0159ejn\u011bn\u00e9 u\u017eivatel\u016fm vysv\u011btluj\u00edc\u00ed vyu\u017eit\u00ed dat<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Dodr\u017eov\u00e1n\u00ed prvn\u00ed architektury<\/h3>\n<p>Architektura shody-prvn\u00ed zabuduje ochranu dat do n\u00e1vrhu syst\u00e9mu, sp\u00ed\u0161e ne\u017e aby ji po nasazen\u00ed zapnula. To znamen\u00e1:<\/p>\n<ul>\n<li>Navrhov\u00e1n\u00ed pro automatick\u00e9 maz\u00e1n\u00ed dat od prvn\u00edho dne<\/li>\n<li>Implementace spr\u00e1vy souhlasu p\u0159ed naps\u00e1n\u00edm jak\u00e9hokoli k\u00f3du<\/li>\n<li>V\u00fdb\u011br poskytovatele, jeho\u017e postupy v souladu s va\u0161imi povinnostmi v souladu s va\u0161imi povinnostmi v souladu<\/li>\n<li>Dokumentov\u00e1n\u00ed datov\u00fdch tok\u016f pro \u00fa\u010dely auditu<\/li>\n<\/ul>\n<p><strong>Co doporu\u010dujeme:<\/strong> Pova\u017eovat soulad s FERPA a GDPR za nesmlouvav\u00e9 technick\u00e9 po\u017eadavky. Nep\u0159edpokl\u00e1dejte, \u017ee marketingov\u00e9 materi\u00e1ly poskytovatele pokr\u00fdvaj\u00ed shodu \u2013 ov\u011b\u0159te jejich technickou implementaci. Pou\u017eijte poskytovatele, kter\u00fd nab\u00edz\u00ed jasn\u00e9 z\u00e1sady uchov\u00e1v\u00e1n\u00ed dat, standardy \u0161ifrov\u00e1n\u00ed a podporu DPA. Pokud je ov\u011b\u0159en\u00ed shody obt\u00ed\u017en\u00e9, m\u016f\u017ee va\u0161e instituce \u010delit pr\u00e1vn\u00edmu riziku bez ohledu na to, jak dobr\u00e9 je odhalen\u00ed plagi\u00e1torstv\u00ed.<\/p>\n<h2>V\u00fdb\u011br poskytovatele<\/h2>\n<p>P\u0159i v\u00fdb\u011bru poskytovatele detekce plagi\u00e1torstv\u00ed pro integraci API vyhodno\u0165te tyto faktory:<\/p>\n<h3>Kvalita detekce<\/h3>\n<p>Vyhodno\u0165te pokryt\u00ed datab\u00e1ze poskytovatele a p\u0159esnost detekce podobnosti. Hledejte poskytovatele, kte\u0159\u00ed nab\u00edzej\u00ed p\u0159\u00edstup k akademick\u00fdm datab\u00e1z\u00edm, webov\u00fdm zdroj\u016fm a publikovan\u00fdm materi\u00e1l\u016fm. Na p\u0159esnosti z\u00e1le\u017e\u00ed \u2013 fale\u0161n\u011b pozitivn\u00ed \u0161kody po\u0161kozuj\u00ed d\u016fv\u011bru a fale\u0161n\u011b negativn\u00ed podkop\u00e1vaj\u00ed akademickou integritu.<\/p>\n<h3>Dokumentace API<\/h3>\n<p>Dobr\u00e1 dokumentace API je nezbytn\u00e1. Hledejte poskytovatele s jasnou dokumentac\u00ed REST API, knihovnami SDK a p\u0159\u00edklady k\u00f3du ve v\u00edce jazyc\u00edch. \u0160patn\u00e1 dokumentace znamen\u00e1 pomalej\u0161\u00ed integraci a del\u0161\u00ed dobu v\u00fdvoje.<\/p>\n<h3>Podpora LMS<\/h3>\n<p>Ov\u011b\u0159te podporu integrace LMS \u2013 Canvas LTI 1.3, plugin Moodle Plagiarism a integrace Blackboard by m\u011bly b\u00fdt dostupn\u00e9, pokud n\u011bco z toho pot\u0159ebujete. N\u011bkte\u0159\u00ed poskytovatel\u00e9 podporuj\u00ed pouze konkr\u00e9tn\u00ed platformy.<\/p>\n<h3>Shoda a zpracov\u00e1n\u00ed dat<\/h3>\n<p>Zkontrolujte z\u00e1sady uchov\u00e1v\u00e1n\u00ed dat poskytovatele, standardy \u0161ifrov\u00e1n\u00ed a podporu DPA. Zde mnoho poskytovatel\u016f zaost\u00e1v\u00e1.<\/p>\n<h3>Cenov\u00fd model<\/h3>\n<p>Vyhodno\u0165te cenov\u00e9 struktury \u2013 podle \u0161eku, p\u0159edplatn\u00e9ho nebo institucion\u00e1ln\u00edho licencov\u00e1n\u00ed. Zva\u017ete, zda se model \u0161k\u00e1luje vhodn\u011b pro va\u0161e pot\u0159eby objemu.<\/p>\n<h3>Podpora a dokumentace<\/h3>\n<p>Kvalita podpory poskytovatel\u016f ovliv\u0148uje rychlost integrace a schopnost odstra\u0148ovat probl\u00e9my. Hledejte poskytovatele s responzivn\u00edmi t\u00fdmy podpory a komplexn\u00ed dokumentac\u00ed.<\/p>\n<h3>Doporu\u010den\u00fd p\u0159\u00edstup<\/h3>\n<ul>\n<li>Pokud pot\u0159ebujete maxim\u00e1ln\u00ed flexibilitu a kontrolu, vyberte si poskytovatele s robustn\u00edm REST API.<\/li>\n<li>Pokud pot\u0159ebujete hlubokou integraci LMS s minim\u00e1ln\u00edm v\u00fdvojem, vyberte si poskytovatele nab\u00edzej\u00edc\u00ed LTI 1.3 nebo nativn\u00ed podporu plugin\u016f.<\/li>\n<li>Pokud je shoda kritick\u00e9, p\u0159ed potvrzen\u00edm ov\u011b\u0159te postupy zpracov\u00e1n\u00ed dat.<\/li>\n<li>Pokud vytv\u00e1\u0159\u00edte vzd\u011bl\u00e1vac\u00ed aplikaci od nuly, za\u010dn\u011bte s integrac\u00ed REST API a podle pot\u0159eby p\u0159idejte pluginy LMS.<\/li>\n<\/ul>\n<h2>Kontroln\u00ed seznam implementace \u2014 Praktick\u00e9 kroky<\/h2>\n<p>Tento kontroln\u00ed seznam pou\u017eijte p\u0159i pl\u00e1nov\u00e1n\u00ed integrace API pro detekci plagi\u00e1t\u016f:<\/p>\n<ul>\n<li>Definujte rozsah integrace: Kter\u00e9 aplikace nebo platformy LMS pot\u0159ebuj\u00ed kontrolu plagi\u00e1torstv\u00ed<\/li>\n<li>Vyberte sv\u00e9ho poskytovatele a d\u016fkladn\u011b si prohl\u00e9dn\u011bte dokumentaci API<\/li>\n<li>Ov\u011b\u0159te soulad poskytovatele s FERPA, GDPR a z\u00e1sadami va\u0161\u00ed instituce<\/li>\n<li>Z\u00edskejte p\u0159ihla\u0161ovac\u00ed \u00fadaje API a nakonfigurujte ov\u011b\u0159ov\u00e1n\u00ed<\/li>\n<li>Navrhn\u011bte tok odesl\u00e1n\u00ed: Jak budou dokumenty zas\u00edl\u00e1ny do API<\/li>\n<li>Implementujte kl\u00ed\u010d API nebo ov\u011b\u0159ov\u00e1n\u00ed JWT (v z\u00e1vislosti na integra\u010dn\u00edm vzoru)<\/li>\n<li>Sestavte logiku zpracov\u00e1n\u00ed v\u00fdsledk\u016f: Jak analyzovat a zobrazit zpr\u00e1vy o podobnosti<\/li>\n<li>Implementujte zpracov\u00e1n\u00ed chyb pro selh\u00e1n\u00ed API a okrajov\u00e9 p\u0159\u00edpady<\/li>\n<li>Navrhn\u011bte u\u017eivatelsk\u00e9 rozhran\u00ed pro odesl\u00e1n\u00ed, zobrazen\u00ed v\u00fdsledk\u016f a generov\u00e1n\u00ed sestav<\/li>\n<li>P\u0159ed produk\u010dn\u00edm pou\u017eit\u00edm otestujte integraci se vzorov\u00fdmi dokumenty<\/li>\n<li>Nakonfigurujte z\u00e1sady uchov\u00e1v\u00e1n\u00ed dat a automatick\u00e9 maz\u00e1n\u00ed<\/li>\n<li>Zdokumentujte integraci pro va\u0161e v\u00fdvojov\u00e9 a IT t\u00fdmy<\/li>\n<li>\u0161kolit instruktory a administr\u00e1tory o pou\u017e\u00edv\u00e1n\u00ed integrovan\u00e9 kontroly plagi\u00e1torstv\u00ed<\/li>\n<\/ul>\n<h2>Shrnut\u00ed<\/h2>\n<p>Integrace rozhran\u00ed API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS vy\u017eaduje pe\u010dliv\u00e9 pl\u00e1nov\u00e1n\u00ed technick\u00e9 architektury, po\u017eadavk\u016f na shodu a u\u017eivatelsk\u00e9 zku\u0161enosti. \u010cty\u0159i integra\u010dn\u00ed vzory \u2013 REST API, LTI 1.3, plugin Moodle a integrace Blackboard \u2013 ka\u017ed\u00fd slou\u017e\u00ed k jin\u00fdm pot\u0159eb\u00e1m a \u00farovn\u00edm slo\u017eitosti.<\/p>\n<p>Kl\u00ed\u010dov\u00e9 v\u011bci:<\/p>\n<ul>\n<li>REST API poskytuje maxim\u00e1ln\u00ed flexibilitu, ale vy\u017eaduje v\u00edce \u00fasil\u00ed o v\u00fdvoj<\/li>\n<li>LTI 1.3 nab\u00edz\u00ed hlubokou integraci LMS se zabezpe\u010den\u00fdm ov\u011b\u0159ov\u00e1n\u00edm JWT<\/li>\n<li>Pluginy Moodle Plagiarism poskytuj\u00ed nativn\u00ed integraci Gradebook<\/li>\n<li>Asynchronn\u00ed zpracov\u00e1n\u00ed s webhooky je modern\u00edm standardem pro produk\u010dn\u00ed aplikace<\/li>\n<li>Shoda FERPA a GDPR mus\u00ed b\u00fdt navr\u017eena do architektury od prvn\u00edho dne<\/li>\n<li>Vyberte si sv\u00e9ho poskytovatele na z\u00e1klad\u011b kvality API, podpory LMS, postup\u016f dodr\u017eov\u00e1n\u00ed p\u0159edpis\u016f a cen<\/li>\n<\/ul>\n<p>P\u0159\u00edstup za prv\u00e9 dodr\u017eov\u00e1n\u00ed p\u0159edpis\u016f \u2013 zach\u00e1zen\u00ed s po\u017eadavky FERPA a GDPR sp\u00ed\u0161e jako s hlavn\u00ed technickou architekturou ne\u017e s dodate\u010dn\u00fdm n\u00e1padem \u2013 je to, co odd\u011bluje odpov\u011bdn\u00e9 integrace od rizikov\u00fdch. P\u0159ed naps\u00e1n\u00edm jak\u00e9hokoli integra\u010dn\u00edho k\u00f3du up\u0159ednostn\u011bte minimalizaci dat, \u0161ifrov\u00e1n\u00ed, automatick\u00e9 maz\u00e1n\u00ed a ov\u011b\u0159en\u00ed poskytovatele.<\/p>\n<h2>Souvisej\u00edc\u00ed p\u0159\u00edru\u010dky<\/h2>\n<p>P\u0159e\u010dt\u011bte si n\u00e1\u0161 souvisej\u00edc\u00ed obsah pro hlub\u0161\u00ed kontext:<\/p>\n<ul>\n<li><a href=\"https:\/\/hub.paper-checker.com\/blog\/ethical-implications-ai-detection-databases-2\/\">Etick\u00e9 d\u016fsledky datab\u00e1z\u00ed detekce AI<\/a> \u2014 Pochopen\u00ed kontextu FERPA a GDPR v n\u00e1stroj\u00edch akademick\u00e9 integrity<\/li>\n<li><a href=\"https:\/\/hub.paper-checker.com\/blog\/best-plagiarism-checkers-2026\/\">Nejlep\u0161\u00ed kontrola plagi\u00e1t\u016f 2026<\/a> \u2014 R\u00e1mec pro srovn\u00e1n\u00ed a hodnocen\u00ed poskytovatel\u016f<\/li>\n<li><a href=\"https:\/\/hub.paper-checker.com\/blog\/copyleaks-vs-turnitin-which-wins-2026\/\">copyleaks vs turnitin: kter\u00fd vyhraje 2026?<\/a> \u2014 Podrobn\u00e9 srovn\u00e1n\u00ed poskytovatel\u016f pro institucion\u00e1ln\u00ed pou\u017eit\u00ed<\/li>\n<li><a href=\"https:\/\/hub.paper-checker.com\/blog\/bulk-plagiarism-checker-for-educators\/\">Bulk Plagiarism Checker for Educators<\/a> \u2014 P\u0159\u00edpady pou\u017eit\u00ed ve vzd\u011bl\u00e1v\u00e1n\u00ed a hromadn\u00e9 zpracov\u00e1n\u00ed<\/li>\n<li><a href=\"https:\/\/hub.paper-checker.com\/blog\/ai-detector-reliability-2026\/\">Spolehlivost detektoru AI v roce 2026<\/a> \u2014 Kontext p\u0159esnosti a hodnocen\u00ed kvality detekce<\/li>\n<\/ul>\n<h2>Kl\u00ed\u010dov\u00e9 reference<\/h2>\n<p>Zdrojov\u00e9 materi\u00e1ly a dokumentace:<\/p>\n<ul>\n<li><a href=\"https:\/\/copydetect.in\/ur\/blog\/copydetect-plagiarism-api-integration\">pr\u016fvodce integrac\u00ed copydetect<\/a><\/li>\n<li><a href=\"https:\/\/netus.ai\/blog\/integrating-a-plagiarism-detector-api-with-your-website\">Netus Integration Guide<\/a><\/li>\n<li><a href=\"https:\/\/www.plagaware.com\/service\/api\">Dokumentace Plagaware API<\/a><\/li>\n<li><a href=\"https:\/\/copyleaks.com\/api\/plagiarism-checker\">dokumentace copyleaks api<\/a><\/li>\n<li><a .=\"\" href=\"https:\/\/developerdocs.instructure.com\/services\/canvas\/external-tools\/plagiarism-detection-platform\/webhooks_subscriptions_for_plagiarism_platform\">Canvas . Plagi\u00e1torsk\u00e1 platforma pro detekci plagi\u00e1t\u016f \u2013 p\u0159edplatn\u00e9 webhooku<\/a><\/li>\n<li><a href=\"https:\/\/moodledev.io\/docs\/5.0\/apis\/subsystems\/plagiarism\">moodle plagi\u00e1t API<\/a><\/li>\n<li><a href=\"https:\/\/8allocate.com\/blog\/ferpa-gdpr-for-ai-in-education-a-practical-deployment-checklist\/\">FERPA\/GDPR pro AI ve vzd\u011bl\u00e1v\u00e1n\u00ed \u2014 praktick\u00fd kontroln\u00ed seznam nasazen\u00ed<\/a><\/li>\n<li><a href=\"https:\/\/poorvucenter.yale.edu\/teaching\/teaching-resource-library\/ai-guidance-for-teachers\/ai-course-assignment-design\/protecting\">Pokyny pro Yale Ferpa \u2014 N\u00e1vrh p\u0159i\u0159azen\u00ed kurzu AI<\/a><\/li>\n<li><a href=\"https:\/\/plagiarismcheck.org\/for-developers\/\">z\u00e1kladn\u00ed dokumentace plagi\u00e1tor\u016f<\/a><\/li>\n<li><a href=\"https:\/\/www.compilatio.net\/en\/lms-integration\">Integrace kompilace LMS<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Nau\u010dte se, jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do sv\u00e9 aplikace nebo LMS s n\u00e1vody krok za krokem, uk\u00e1zkami k\u00f3du a architekturou dodr\u017eov\u00e1n\u00ed p\u0159edpis\u016f pro po\u017eadavky FERPA a GDPR.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_locale":"cs_CZ","_original_post":"https:\/\/hub.paper-checker.com\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/","iawp_total_views":2,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4804","post","type-post","status-publish","format-standard","hentry","category-uncategorized","cs-CZ"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS - Paper Checker<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS - Paper Checker\" \/>\n<meta property=\"og:description\" content=\"Nau\u010dte se, jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do sv\u00e9 aplikace nebo LMS s n\u00e1vody krok za krokem, uk\u00e1zkami k\u00f3du a architekturou dodr\u017eov\u00e1n\u00ed p\u0159edpis\u016f pro po\u017eadavky FERPA a GDPR.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/\" \/>\n<meta property=\"og:site_name\" content=\"Paper Checker\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-03T09:56:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hub.paper-checker.com\/wp-content\/uploads\/2024\/12\/home.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napsal(a)\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Odhadovan\u00e1 doba \u010dten\u00ed\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minut\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS - Paper Checker","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/","og_locale":"cs_CZ","og_type":"article","og_title":"Jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS - Paper Checker","og_description":"Nau\u010dte se, jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do sv\u00e9 aplikace nebo LMS s n\u00e1vody krok za krokem, uk\u00e1zkami k\u00f3du a architekturou dodr\u017eov\u00e1n\u00ed p\u0159edpis\u016f pro po\u017eadavky FERPA a GDPR.","og_url":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/","og_site_name":"Paper Checker","article_published_time":"2026-07-03T09:56:38+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/hub.paper-checker.com\/wp-content\/uploads\/2024\/12\/home.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Napsal(a)":"admin","Odhadovan\u00e1 doba \u010dten\u00ed":"20 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/#article","isPartOf":{"@id":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/"},"author":{"name":"admin","@id":"https:\/\/hub.paper-checker.com\/#\/schema\/person\/7e979880444bcdcfb210d9b76a053c37"},"headline":"Jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS","datePublished":"2026-07-03T09:56:38+00:00","mainEntityOfPage":{"@id":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/"},"wordCount":3623,"commentCount":0,"publisher":{"@id":"https:\/\/hub.paper-checker.com\/#organization"},"articleSection":["Uncategorized"],"inLanguage":"cs","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/","url":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/","name":"Jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS - Paper Checker","isPartOf":{"@id":"https:\/\/hub.paper-checker.com\/#website"},"datePublished":"2026-07-03T09:56:38+00:00","breadcrumb":{"@id":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/#breadcrumb"},"inLanguage":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/hub.paper-checker.com\/cs\/blog\/how-to-integrate-plagiarism-checker-api-application-lms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hub.paper-checker.com\/cs\/resources\/"},{"@type":"ListItem","position":2,"name":"Jak integrovat API pro kontrolu plagi\u00e1torstv\u00ed do va\u0161\u00ed aplikace nebo LMS"}]},{"@type":"WebSite","@id":"https:\/\/hub.paper-checker.com\/#website","url":"https:\/\/hub.paper-checker.com\/","name":"Paper Checker","description":"","publisher":{"@id":"https:\/\/hub.paper-checker.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hub.paper-checker.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs"},{"@type":"Organization","@id":"https:\/\/hub.paper-checker.com\/#organization","name":"Paper Checker","url":"https:\/\/hub.paper-checker.com\/","logo":{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/hub.paper-checker.com\/#\/schema\/logo\/image\/","url":"https:\/\/hub.paper-checker.com\/wp-content\/uploads\/2024\/12\/Group.png","contentUrl":"https:\/\/hub.paper-checker.com\/wp-content\/uploads\/2024\/12\/Group.png","width":30,"height":30,"caption":"Paper Checker"},"image":{"@id":"https:\/\/hub.paper-checker.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/hub.paper-checker.com\/#\/schema\/person\/7e979880444bcdcfb210d9b76a053c37","name":"admin","image":{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/secure.gravatar.com\/avatar\/04c851fab809bac4416b7937f4c28db54a7f55b67b05cd380845289fe111b878?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/04c851fab809bac4416b7937f4c28db54a7f55b67b05cd380845289fe111b878?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/04c851fab809bac4416b7937f4c28db54a7f55b67b05cd380845289fe111b878?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/paper-checker.com.loc"],"url":"https:\/\/hub.paper-checker.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/posts\/4804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/comments?post=4804"}],"version-history":[{"count":1,"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/posts\/4804\/revisions"}],"predecessor-version":[{"id":5170,"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/posts\/4804\/revisions\/5170"}],"wp:attachment":[{"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/media?parent=4804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/categories?post=4804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hub.paper-checker.com\/wp-json\/wp\/v2\/tags?post=4804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}