From e37de4a7a4242e565aab910d32763fe598a5b045 Mon Sep 17 00:00:00 2001 From: jasper Date: Sun, 19 Jan 2025 00:04:08 +0100 Subject: [PATCH] initial commit --- frontend/__pycache__/main.cpython-312.pyc | Bin 0 -> 1854 bytes frontend/main.py | 35 + .../all_rooms_page.cpython-312.pyc | Bin 0 -> 9111 bytes .../__pycache__/create_page.cpython-312.pyc | Bin 0 -> 12793 bytes .../__pycache__/join_page.cpython-312.pyc | Bin 0 -> 22023 bytes .../__pycache__/login_page.cpython-312.pyc | Bin 0 -> 3695 bytes .../__pycache__/main_page.cpython-312.pyc | Bin 0 -> 13165 bytes .../register_student_page.cpython-312.pyc | Bin 0 -> 4866 bytes .../register_teacher_page.cpython-312.pyc | Bin 0 -> 9653 bytes .../student_main_page.cpython-312.pyc | Bin 0 -> 16833 bytes frontend/pages/all_rooms_page.py | 199 ++++ frontend/pages/create_page.py | 288 +++++ frontend/pages/join_page.py | 425 ++++++++ frontend/pages/login_page.py | 79 ++ frontend/pages/main_page.py | 272 +++++ frontend/pages/register_student_page.py | 94 ++ frontend/pages/register_teacher_page.py | 180 ++++ frontend/pages/student_main_page.py | 343 ++++++ frontend/pages/temp/attendance_sheet.pdf | Bin 0 -> 1360 bytes frontend/pages/test.py | 15 + main.py | 996 ++++++++++++++++++ 21 files changed, 2926 insertions(+) create mode 100644 frontend/__pycache__/main.cpython-312.pyc create mode 100644 frontend/main.py create mode 100644 frontend/pages/__pycache__/all_rooms_page.cpython-312.pyc create mode 100644 frontend/pages/__pycache__/create_page.cpython-312.pyc create mode 100644 frontend/pages/__pycache__/join_page.cpython-312.pyc create mode 100644 frontend/pages/__pycache__/login_page.cpython-312.pyc create mode 100644 frontend/pages/__pycache__/main_page.cpython-312.pyc create mode 100644 frontend/pages/__pycache__/register_student_page.cpython-312.pyc create mode 100644 frontend/pages/__pycache__/register_teacher_page.cpython-312.pyc create mode 100644 frontend/pages/__pycache__/student_main_page.cpython-312.pyc create mode 100644 frontend/pages/all_rooms_page.py create mode 100644 frontend/pages/create_page.py create mode 100644 frontend/pages/join_page.py create mode 100644 frontend/pages/login_page.py create mode 100644 frontend/pages/main_page.py create mode 100644 frontend/pages/register_student_page.py create mode 100644 frontend/pages/register_teacher_page.py create mode 100644 frontend/pages/student_main_page.py create mode 100644 frontend/pages/temp/attendance_sheet.pdf create mode 100644 frontend/pages/test.py create mode 100644 main.py diff --git a/frontend/__pycache__/main.cpython-312.pyc b/frontend/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..123ae2ad7471d807978f1d2e176fd710b8bdd958 GIT binary patch literal 1854 zcmaJ>&2Jk;6rb5$+w0BxBj2f$Kq?BviR2Aba4H2t)1n?yNP&vIEQ>vM?CysEj3hzcV2iau*y65P`R?1H6X^!JozdfK2K!Bo1Mha3<5~a~VL3t3< z2Mc`&R;B}Ty|pM5)O(UXj7AEH+jJk#2!LAVdKLjf!&E;PNWHc4Y7Ymfko+#SCw3$V z*5De4O>+cdx*$-NJVvIE0x@Y?mVsT@_5w}3;s*X>Cs3)@d}-`SS>(5+^h&83_($7fFdji_tXuz4x7LTZJMAG z3(Z16wL!IoIso>%9BBMOR$L_TzpNx`I!OP=kLmOkybqdE)*XSIGh(Cu~OvLOm!U2IAL1OCNuF&ih5 zyoF2$Gv*|M-5RYS#+*d%)DT`H(WM(7ez0(ph$ZB+#QDpZwlT;?aEe(eygUmAtyiM* z6SRD=X?rAvkyD^`SgbjDzwA1gvG>^7DLOV!Ue}gg8)+5Ot0Jtey7;zNHSG0%^`LMKGIv9Sbp*$UZ{*iJxHMc)CcQE=&L;Xtz(Kt8$}Tk`lw3T(P6+(d@i@gE zOUEZuI71gAG4A+0g(GZBqZ6gt7Ualt4}`<9+5NHEzX286LttWh^U6=sSWA+(uHC)X zxUzk{dHsnriYJ&K*)aISV3em{px22c>YJFSYo&}M6o; zrXT9)!att3Q+()%|h;2#lG0rTYEGCX=Bf}t~S*?=T+tunvEEs*a7Uqrl zr5m?yE-ZZuc>H)WPUK6rTc}y+GJcJoXI<{C(Wxy$2!93rzk%5!@Zu48`3Sthf7v6T zQB7M0%3v!w);gDCzf`6*Fx5(o{F#y!VKdquQsGzwZ?862j{$}42_UJB`eX52OHwxH jx31p3`sIb4rHA^iemHq?fAZoF7k-xBY>Pn3aBBYob#%&S literal 0 HcmV?d00001 diff --git a/frontend/main.py b/frontend/main.py new file mode 100644 index 0000000..ee16ecf --- /dev/null +++ b/frontend/main.py @@ -0,0 +1,35 @@ +import flet as ft +from urllib.parse import urlparse, parse_qs +from pages.main_page import main_page # Import main page function +from pages.login_page import login_page # Import login page function +from pages.register_teacher_page import register_teacher_page # Import register page function +from pages.register_student_page import register_student_page # Import search page function +from pages.create_page import create_page # Import create page function7 +from pages.join_page import join_page + +# Define your routes +ROUTES = { + "/": main_page, + "/login": login_page, + "/register_teacher": register_teacher_page, + "/register_student": register_student_page, + "/create": create_page, + "/join": join_page +} + +def main(page: ft.Page): + def route_change(e: ft.RouteChangeEvent): + page.clean() + parsed_url = urlparse(e.route) # Parse the route + query_params = parse_qs(parsed_url.query) # Extract query parameters + + + + render_function = ROUTES.get(parsed_url.path, main_page) + render_function(page) + + page.on_route_change = route_change # Set up route change handling + page.go(page.route) # Navigate to the current route + +if __name__ == "__main__": + ft.app(target=main, view=ft.AppView.WEB_BROWSER, port=9000) \ No newline at end of file diff --git a/frontend/pages/__pycache__/all_rooms_page.cpython-312.pyc b/frontend/pages/__pycache__/all_rooms_page.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b141220ed1bfc19accdd92f68511cf6893241e0 GIT binary patch literal 9111 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 literal 0 HcmV?d00001 diff --git a/frontend/pages/__pycache__/register_student_page.cpython-312.pyc b/frontend/pages/__pycache__/register_student_page.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b033d7a95cb11c44748ad72475bed7d73dc1db90 GIT binary patch literal 4866 zcmbtYT})iZ6`uRId-soBU;!ILxG^T?HigB(O;c*)7=yt!{;8q)L3X#7y#ws}?oa35 zHDR?>M6$%Ll`7^T!ckJiQ7grfk?N>Xn}<9!a-~@63maD5)lD8E^(k+pPSwX@ob_Kk9w&nGX7T!TV+}%oqXVn(mCl2k&{;+*QW*_RFr}8A zU`s7G!Ko}}BBG_V*-o)4ca5JAuubK!bRtA#76B4=*

!a^H3-LXo;}%2tFsY+1^n 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 N{Lngw_~z1P{{=cHP{RNK literal 0 HcmV?d00001 diff --git a/frontend/pages/__pycache__/register_teacher_page.cpython-312.pyc b/frontend/pages/__pycache__/register_teacher_page.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..50e521a189c59981fc3b4c3797319c5fd7c812da GIT binary patch literal 9653 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 Xi)^b*n5Js3(H|P$H?AR4R=WQ`q=qKI literal 0 HcmV?d00001 diff --git a/frontend/pages/__pycache__/student_main_page.cpython-312.pyc b/frontend/pages/__pycache__/student_main_page.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e4524101f4c6958d1b9a44df7ce1943b38bca26 GIT binary patch literal 16833 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