diff --git a/Browser: b/Browser: new file mode 100644 index 0000000..e69de29 diff --git a/DB: b/DB: new file mode 100644 index 0000000..e69de29 diff --git a/FlaskApp: b/FlaskApp: new file mode 100644 index 0000000..e69de29 diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app.py b/app.py index 4b6ccca..819c415 100644 --- a/app.py +++ b/app.py @@ -46,5 +46,14 @@ def delete(todo_id): return redirect(url_for("home")) if __name__ == "__main__": - db.create_all() + with app.app_context(): + db.create_all() app.run(debug=True) + +from flask import Flask, render_template, request # pastikan import ini ada + +app = Flask(__name__) + +@app.route('/login', methods=['GET', 'POST']) +def login(): + return render_template('login.html') diff --git a/docs/classes_app.png b/docs/classes_app.png new file mode 100644 index 0000000..5b9f9c6 Binary files /dev/null and b/docs/classes_app.png differ diff --git a/docs/evaluasi/blackbox/hasil evaluasi.png b/docs/evaluasi/blackbox/hasil evaluasi.png new file mode 100644 index 0000000..d5a4f1b Binary files /dev/null and b/docs/evaluasi/blackbox/hasil evaluasi.png differ diff --git a/docs/evaluasi/blackbox/kegiatan ukm.side b/docs/evaluasi/blackbox/kegiatan ukm.side new file mode 100644 index 0000000..eea37e0 --- /dev/null +++ b/docs/evaluasi/blackbox/kegiatan ukm.side @@ -0,0 +1,341 @@ +{ + "id": "f6012122-722d-43c3-8455-a592bcae0b2b", + "version": "2.0", + "name": "kegiatan ukm", + "url": "https://supreme-acorn-g4w44rvxgv6hrp4-5000.app.github.dev/", + "tests": [{ + "id": "f0d7e88b-251c-4d7c-b78a-95cdebf8095e", + "name": "blackbox-test.side", + "commands": [{ + "id": "492d6551-318c-4fba-a8c1-f4ad3db73bfd", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "eab655e5-9ff9-45e9-91d3-e1ea1ea1a66d", + "comment": "", + "command": "setWindowSize", + "target": "1382x736", + "targets": [], + "value": "" + }, { + "id": "7e1f9be8-de70-42b0-98e7-fbf05924fb57", + "comment": "", + "command": "click", + "target": "css=.btn-primary", + "targets": [ + ["css=.btn-primary", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Continue')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "53457d07-f365-492d-af09-35c04338ae70", + "comment": "", + "command": "click", + "target": "name=title", + "targets": [ + ["name=title", "name"], + ["css=input", "css:finder"], + ["xpath=//input[@name='title']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "" + }, { + "id": "e59bd96d-1c41-440b-8184-ea637b1a66cc", + "comment": "", + "command": "click", + "target": "name=title", + "targets": [ + ["name=title", "name"], + ["css=input", "css:finder"], + ["xpath=//input[@name='title']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "" + }, { + "id": "fc4c35f2-eb05-4616-905c-6434b7ec9f70", + "comment": "", + "command": "click", + "target": "css=.blue", + "targets": [ + ["css=.blue", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Add')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0a8071a8-787c-4627-b792-d643b2c2cc75", + "comment": "", + "command": "click", + "target": "linkText=Delete", + "targets": [ + ["linkText=Delete", "linkText"], + ["css=.red", "css:finder"], + ["xpath=//a[contains(text(),'Delete')]", "xpath:link"], + ["xpath=//a[contains(@href, '/delete/1')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Delete')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e6764b26-6dc9-470a-b564-0ddb979995ca", + "comment": "", + "command": "click", + "target": "name=title", + "targets": [ + ["name=title", "name"], + ["css=input", "css:finder"], + ["xpath=//input[@name='title']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "" + }, { + "id": "1816b993-7c95-4e1b-9541-ed7810b9d665", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [ + ["css=body", "css:finder"], + ["xpath=//body", "xpath:position"] + ], + "value": "" + }, { + "id": "7b5223ec-6d8c-4954-8f9e-1fed91943c6b", + "comment": "", + "command": "click", + "target": "css=.blue", + "targets": [ + ["css=.blue", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Add')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4c5b36af-f0ee-44a3-a7e4-d76790b148b5", + "comment": "", + "command": "click", + "target": "css=.segment", + "targets": [ + ["css=.segment", "css:finder"], + ["xpath=//div/div", "xpath:position"] + ], + "value": "" + }, { + "id": "3f20c299-6415-40f2-a2b7-10dd898d1cc2", + "comment": "", + "command": "click", + "target": "linkText=Update", + "targets": [ + ["linkText=Update", "linkText"], + ["css=.ui:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Update')]", "xpath:link"], + ["xpath=//a[contains(@href, '/update/1')]", "xpath:href"], + ["xpath=//a", "xpath:position"], + ["xpath=//a[contains(.,'Update')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "45ac6d6a-b5e0-456d-b735-b35f42684ab5", + "comment": "", + "command": "click", + "target": "css=.green", + "targets": [ + ["css=.green", "css:finder"], + ["xpath=//span", "xpath:position"], + ["xpath=//span[contains(.,'Completed')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e15e01f0-2971-4122-a2e1-c97c6748342c", + "comment": "", + "command": "click", + "target": "css=.green", + "targets": [ + ["css=.green", "css:finder"], + ["xpath=//span", "xpath:position"], + ["xpath=//span[contains(.,'Completed')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7a14506b-a4ff-411d-af67-037031ff1c93", + "comment": "", + "command": "click", + "target": "linkText=Update", + "targets": [ + ["linkText=Update", "linkText"], + ["css=.ui:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Update')]", "xpath:link"], + ["xpath=//a[contains(@href, '/update/1')]", "xpath:href"], + ["xpath=//a", "xpath:position"], + ["xpath=//a[contains(.,'Update')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "96eedadd-1743-4d86-8655-1f40decf9e4c", + "comment": "", + "command": "click", + "target": "linkText=Update", + "targets": [ + ["linkText=Update", "linkText"], + ["css=.ui:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Update')]", "xpath:link"], + ["xpath=//a[contains(@href, '/update/1')]", "xpath:href"], + ["xpath=//a", "xpath:position"], + ["xpath=//a[contains(.,'Update')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0b3a71a9-6ded-4b57-8e28-a00ee8b7325b", + "comment": "", + "command": "click", + "target": "linkText=Update", + "targets": [ + ["linkText=Update", "linkText"], + ["css=.ui:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Update')]", "xpath:link"], + ["xpath=//a[contains(@href, '/update/1')]", "xpath:href"], + ["xpath=//a", "xpath:position"], + ["xpath=//a[contains(.,'Update')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d190165e-2997-40e6-b5b0-d97752c854ec", + "comment": "", + "command": "click", + "target": "css=.blue:nth-child(2)", + "targets": [ + ["css=.blue:nth-child(2)", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Add')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8eb02e97-29f5-46cd-abce-a538853ade04", + "comment": "", + "command": "click", + "target": "linkText=Delete", + "targets": [ + ["linkText=Delete", "linkText"], + ["css=.ui:nth-child(4) > .red", "css:finder"], + ["xpath=//a[contains(text(),'Delete')]", "xpath:link"], + ["xpath=//a[contains(@href, '/delete/1')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Delete')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "128d0684-d0d7-4b25-84f2-6d3fece62580", + "comment": "", + "command": "click", + "target": "css=.segment", + "targets": [ + ["css=.segment", "css:finder"], + ["xpath=//div/div", "xpath:position"] + ], + "value": "" + }, { + "id": "a882017e-7bd9-4839-8356-25219d59490a", + "comment": "", + "command": "click", + "target": "linkText=Delete", + "targets": [ + ["linkText=Delete", "linkText"], + ["css=.red", "css:finder"], + ["xpath=//a[contains(text(),'Delete')]", "xpath:link"], + ["xpath=//a[contains(@href, '/delete/2')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Delete')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "68a3ac0d-9673-4223-8635-976ee55c37c0", + "comment": "", + "command": "click", + "target": "name=title", + "targets": [ + ["name=title", "name"], + ["css=input", "css:finder"], + ["xpath=//input[@name='title']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "" + }, { + "id": "a1822136-a210-4cce-944c-a4e640fbeaef", + "comment": "", + "command": "type", + "target": "name=title", + "targets": [ + ["name=title", "name"], + ["css=input", "css:finder"], + ["xpath=//input[@name='title']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "rapat mingguan" + }, { + "id": "2cb8354d-9e6c-43c2-a8b3-9ead2eb33c29", + "comment": "", + "command": "sendKeys", + "target": "name=title", + "targets": [ + ["name=title", "name"], + ["css=input", "css:finder"], + ["xpath=//input[@name='title']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "${KEY_ENTER}" + }, { + "id": "3c184d22-2c60-4899-a995-c509109cba6f", + "comment": "", + "command": "click", + "target": "linkText=Update", + "targets": [ + ["linkText=Update", "linkText"], + ["css=.ui:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Update')]", "xpath:link"], + ["xpath=//a[contains(@href, '/update/1')]", "xpath:href"], + ["xpath=//a", "xpath:position"], + ["xpath=//a[contains(.,'Update')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "97ee42eb-df89-4814-9d17-5f8fe78dc33e", + "comment": "", + "command": "click", + "target": "css=.green", + "targets": [ + ["css=.green", "css:finder"], + ["xpath=//span", "xpath:position"], + ["xpath=//span[contains(.,'Completed')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "44355382-55a7-45f2-9ac4-31792ae27c52", + "comment": "", + "command": "click", + "target": "css=.green", + "targets": [ + ["css=.green", "css:finder"], + ["xpath=//span", "xpath:position"], + ["xpath=//span[contains(.,'Completed')]", "xpath:innerText"] + ], + "value": "" + }] + }], + "suites": [{ + "id": "4fbbae10-6dc9-4fab-aefc-2acad127f229", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["f0d7e88b-251c-4d7c-b78a-95cdebf8095e"] + }], + "urls": ["https://supreme-acorn-g4w44rvxgv6hrp4-5000.app.github.dev/"], + "plugins": [] +} \ No newline at end of file diff --git a/docs/evaluasi/grafik SUS.png b/docs/evaluasi/grafik SUS.png new file mode 100644 index 0000000..234426b Binary files /dev/null and b/docs/evaluasi/grafik SUS.png differ diff --git a/docs/packages_app.png b/docs/packages_app.png new file mode 100644 index 0000000..505b642 Binary files /dev/null and b/docs/packages_app.png differ diff --git a/docs/sequence create.png b/docs/sequence create.png new file mode 100644 index 0000000..6dcc912 Binary files /dev/null and b/docs/sequence create.png differ diff --git a/docs/sequence login.png b/docs/sequence login.png new file mode 100644 index 0000000..6bf414f Binary files /dev/null and b/docs/sequence login.png differ diff --git a/docs/uml b/docs/uml new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/docs/uml @@ -0,0 +1 @@ + diff --git a/templates/login.html b/templates/login.html new file mode 100644 index 0000000..1974951 --- /dev/null +++ b/templates/login.html @@ -0,0 +1,14 @@ + + +
+