From 8ce0f45094760bf596672921f8927297022ad636 Mon Sep 17 00:00:00 2001 From: "Ellis Brown (browne31)" Date: Tue, 12 Nov 2019 17:38:24 +0000 Subject: [PATCH] All project files --- .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 186 bytes .../Chatbot/__pycache__/admin.cpython-37.pyc | Bin 0 -> 227 bytes .../Chatbot/__pycache__/apps.cpython-37.pyc | Bin 0 -> 404 bytes .../Chatbot/__pycache__/models.cpython-37.pyc | Bin 0 -> 224 bytes .../Chatbot/__pycache__/urls.cpython-37.pyc | Bin 0 -> 615 bytes .../Chatbot/__pycache__/views.cpython-37.pyc | Bin 0 -> 1376 bytes DjangoProject/Chatbot/admin.py | 3 + DjangoProject/Chatbot/apps.py | 5 + .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 197 bytes DjangoProject/Chatbot/models.py | 3 + DjangoProject/Chatbot/static/ContactIcon.png | Bin 0 -> 44619 bytes DjangoProject/Chatbot/static/DiscordIcon.png | Bin 0 -> 12253 bytes DjangoProject/Chatbot/static/css/style.css | 139 +++++++ .../templates/webpages/StudentLogin.html | 51 +++ .../templates/webpages/StudentReg.html | 75 ++++ .../templates/webpages/TeacherLogin.html | 51 +++ .../templates/webpages/TeacherReg.html | 58 +++ .../templates/webpages/TeacherRequest.html | 39 ++ .../templates/webpages/TermsAndPolicy.html | 94 +++++ .../Chatbot/templates/webpages/index.html | 44 ++ DjangoProject/Chatbot/tests.py | 3 + DjangoProject/Chatbot/urls.py | 13 + DjangoProject/Chatbot/views.py | 27 ++ .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 192 bytes .../__pycache__/settings.cpython-37.pyc | Bin 0 -> 2413 bytes .../__pycache__/urls.cpython-37.pyc | Bin 0 -> 1112 bytes .../__pycache__/wsgi.cpython-37.pyc | Bin 0 -> 607 bytes DjangoProject/DjangoProject/settings.py | 125 ++++++ DjangoProject/DjangoProject/urls.py | 25 ++ DjangoProject/DjangoProject/wsgi.py | 16 + DjangoProject/manage.py | 21 + my-site/Webpages/Bot/SQLite.db | Bin 0 -> 36864 bytes my-site/Webpages/Bot/cosgraph.png | Bin 0 -> 30530 bytes my-site/Webpages/Bot/jsonTest.json | 20 + my-site/Webpages/Bot/newGraph.png | Bin 0 -> 17542 bytes my-site/Webpages/Bot/pythBot (3).py | 370 +++++++++++++++++ my-site/Webpages/Bot/pythjJson.py | 6 + my-site/Webpages/Bot/singraph.png | Bin 0 -> 30129 bytes my-site/Webpages/Bot/tesDb.db | Bin 0 -> 24576 bytes my-site/Webpages/Bot/wrongFunc.py | 390 ++++++++++++++++++ my-site/Webpages/CenterOriginMatplotlib01.png | Bin 0 -> 17771 bytes my-site/Webpages/ContactIcon.png | Bin 0 -> 44619 bytes my-site/Webpages/DiscordIcon.png | Bin 0 -> 12253 bytes my-site/Webpages/StudentLogin.html | 49 +++ my-site/Webpages/StudentReg.html | 73 ++++ my-site/Webpages/TeacherLogin.html | 49 +++ my-site/Webpages/TeacherReg.html | 56 +++ my-site/Webpages/TeacherRequest.html | 37 ++ my-site/Webpages/TermsAndPolicy.html | 92 +++++ my-site/Webpages/testFile.php | 30 ++ my-site/index.html | 42 ++ my-site/style.css | 138 +++++++ my-site/website.py | 20 + 53 files changed, 2164 insertions(+) create mode 100644 DjangoProject/Chatbot/__pycache__/__init__.cpython-37.pyc create mode 100644 DjangoProject/Chatbot/__pycache__/admin.cpython-37.pyc create mode 100644 DjangoProject/Chatbot/__pycache__/apps.cpython-37.pyc create mode 100644 DjangoProject/Chatbot/__pycache__/models.cpython-37.pyc create mode 100644 DjangoProject/Chatbot/__pycache__/urls.cpython-37.pyc create mode 100644 DjangoProject/Chatbot/__pycache__/views.cpython-37.pyc create mode 100644 DjangoProject/Chatbot/admin.py create mode 100644 DjangoProject/Chatbot/apps.py create mode 100644 DjangoProject/Chatbot/migrations/__pycache__/__init__.cpython-37.pyc create mode 100644 DjangoProject/Chatbot/models.py create mode 100644 DjangoProject/Chatbot/static/ContactIcon.png create mode 100644 DjangoProject/Chatbot/static/DiscordIcon.png create mode 100644 DjangoProject/Chatbot/static/css/style.css create mode 100644 DjangoProject/Chatbot/templates/webpages/StudentLogin.html create mode 100644 DjangoProject/Chatbot/templates/webpages/StudentReg.html create mode 100644 DjangoProject/Chatbot/templates/webpages/TeacherLogin.html create mode 100644 DjangoProject/Chatbot/templates/webpages/TeacherReg.html create mode 100644 DjangoProject/Chatbot/templates/webpages/TeacherRequest.html create mode 100644 DjangoProject/Chatbot/templates/webpages/TermsAndPolicy.html create mode 100644 DjangoProject/Chatbot/templates/webpages/index.html create mode 100644 DjangoProject/Chatbot/tests.py create mode 100644 DjangoProject/Chatbot/urls.py create mode 100644 DjangoProject/Chatbot/views.py create mode 100644 DjangoProject/DjangoProject/__pycache__/__init__.cpython-37.pyc create mode 100644 DjangoProject/DjangoProject/__pycache__/settings.cpython-37.pyc create mode 100644 DjangoProject/DjangoProject/__pycache__/urls.cpython-37.pyc create mode 100644 DjangoProject/DjangoProject/__pycache__/wsgi.cpython-37.pyc create mode 100644 DjangoProject/DjangoProject/settings.py create mode 100644 DjangoProject/DjangoProject/urls.py create mode 100644 DjangoProject/DjangoProject/wsgi.py create mode 100644 DjangoProject/manage.py create mode 100644 my-site/Webpages/Bot/SQLite.db create mode 100644 my-site/Webpages/Bot/cosgraph.png create mode 100644 my-site/Webpages/Bot/jsonTest.json create mode 100644 my-site/Webpages/Bot/newGraph.png create mode 100644 my-site/Webpages/Bot/pythBot (3).py create mode 100644 my-site/Webpages/Bot/pythjJson.py create mode 100644 my-site/Webpages/Bot/singraph.png create mode 100644 my-site/Webpages/Bot/tesDb.db create mode 100644 my-site/Webpages/Bot/wrongFunc.py create mode 100644 my-site/Webpages/CenterOriginMatplotlib01.png create mode 100644 my-site/Webpages/ContactIcon.png create mode 100644 my-site/Webpages/DiscordIcon.png create mode 100644 my-site/Webpages/StudentLogin.html create mode 100644 my-site/Webpages/StudentReg.html create mode 100644 my-site/Webpages/TeacherLogin.html create mode 100644 my-site/Webpages/TeacherReg.html create mode 100644 my-site/Webpages/TeacherRequest.html create mode 100644 my-site/Webpages/TermsAndPolicy.html create mode 100644 my-site/Webpages/testFile.php create mode 100644 my-site/index.html create mode 100644 my-site/style.css create mode 100644 my-site/website.py diff --git a/DjangoProject/Chatbot/__pycache__/__init__.cpython-37.pyc b/DjangoProject/Chatbot/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0016a05f79b307f17c8778aed16709dbfa648664 GIT binary patch literal 186 zcmZ?b<>g`kf`p%YV?p#|5CH>>K!yVl7qb9~6oz01O-8?!3`HPe1o11`*(xTqIJKxa z#w9VYGBGE{v7o>uu_Q6ZCqEg;3n-PgEOQ6 literal 0 HcmV?d00001 diff --git a/DjangoProject/Chatbot/__pycache__/admin.cpython-37.pyc b/DjangoProject/Chatbot/__pycache__/admin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f56d87be91b68b1c8a037b449e1cd1c57bf23814 GIT binary patch literal 227 zcmZ?b<>g`kf`p%YW1WEXV-N=hn1BoiATAaF5-AKRj5!Rsj8Tk?3@J>(44TX@fuanW zjJH@5Q*tx&{4|-O_)@YG^V0M6lJoOQiZYXmKnAR2C}IXuVB%MTvsFxJacWUaPf$-w;eBf#CQG^=>WR7=8wgf^uc7>&^fPaUQn28&Ml|+ zGKFlZWv+Q?=(4tJS@mvuF`k~&RjN120&&Z$TtekGOD*juqFgC6QMD%UmAjGgzy!F> h7qH2RXlWByrybTJ|C4pm0DvaA>ejh-*J=BV$R24qWj6o- literal 0 HcmV?d00001 diff --git a/DjangoProject/Chatbot/__pycache__/models.cpython-37.pyc b/DjangoProject/Chatbot/__pycache__/models.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c53ecd27c9263c9e33ebd112d93a6e19a0d72acd GIT binary patch literal 224 zcmZ?b<>g`kf`p%YV{L%+V-N=hn1BoiATAaF5-AKRj5!Rsj8Tk?3@J>(44TX@fuanW zjJMcw^HWlDiv2X1ZgHk$CFZ5)>!ly>8nu5C?G5viv2cF5;fa*fnC_?pM*k}*chy6ycPy={P zO1p~y-ptwP?LD4@jks%9!Y=Rm6a4R){9zn(ex^YFq-7-vSx0lb2C3{tnPzJ2!d=!u zqf42N-C&D4`Yc7Vl=``9mvzwSscMUQ@BjGQS{gfc!w?6P;BS3m;F0J6AHX@nk9N e*V4vx(8FrudLN1s*10^Tju`r8$U|?)xAy~v7Ovg^ literal 0 HcmV?d00001 diff --git a/DjangoProject/Chatbot/__pycache__/views.cpython-37.pyc b/DjangoProject/Chatbot/__pycache__/views.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ad2698204d2853d5721c99ccabd2be4328d1bfd7 GIT binary patch literal 1376 zcmbVM&2G~`5MDd~i4)Qv2~=_DH3w4B9*|H}QPM*XRTVXGiHwBnS=p&JF?@_q(t))l)s5d87fdEtUwLwgjHxjlduLYa0u(rh7Mr^9zmC|30tsD z*n*w0=T(#$zCCcTt8Rf(3q#sAY_aAFP-wsiBS6UJ@wsyq3OkhoNV#lyN^!<&EyA^F=vSv1BgI z`3ehbWY=_XYMBoH0!DmcCH9??of~g`kf`p%YV?p#|5CH>>K!yVl7qb9~6oz01O-8?!3`HPe1o11+*(xTqIJKxa z#w9VYGBGE{v7o>uu_Q6ZCqEg;3nWHa^HWN5Qtd$Q I_zc7h057dLNB{r; literal 0 HcmV?d00001 diff --git a/DjangoProject/Chatbot/models.py b/DjangoProject/Chatbot/models.py new file mode 100644 index 0000000..fd18c6e --- /dev/null +++ b/DjangoProject/Chatbot/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/DjangoProject/Chatbot/static/ContactIcon.png b/DjangoProject/Chatbot/static/ContactIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..9f7cd73f5cc8c1e6d335945dfa25c42b16599f2d GIT binary patch literal 44619 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 Z`AIfp;$?-)@qv6NNl{smDk1&A{{W1nU@8Cr literal 0 HcmV?d00001 diff --git a/DjangoProject/Chatbot/static/DiscordIcon.png b/DjangoProject/Chatbot/static/DiscordIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..ba8f06fd3be97dc3bed31ea6ae17e1250b58613d GIT binary patch literal 12253 zcmY*yL)gac#r^ty9c)+5Zr_7BguW=yRU!L z+P!<%uIf7H$E;Z=LRDE74VefT005xLy_Z%80H7eRI1~})HF8dsYXSf;098dz8Cgd~ z=ZNK3(m7(~PYnNumtV>M%P%{HFFJ)S{>M0lFa6d3QM$!IUboKSORw=C|0;gvU)L*e z3|n~3`j2@f|9Soa|F_Uza>+hq_K!ozf^+2RtKK>6Pl?y{N?KZh|H41`ANUvlI{#t* z=>J~9DQw9;_=kPakN+`$ZR~%pwrn3f`#)KK>pH#``g`=B;p_H4@n6s7SIsMUwR)}V z5HkN7|F__i|M*|oe|;`HhW^pN%3j-W4E>)WyfThqi+>zK=U>zRS^e{QJ^Hs^6JMEE znSJowtKb#9@=kyI{0m;)7G4eiI={x{f4BQ{^w;pU+&|eL!QT(0x^`@_r0eTGmbN(;d`u!QyKf}Kb|9KT(3;ic}1@aczth|#gY&I^!@0nuB-uge1?XGd3t(=g1U!=et>&~f$@fe_OH-Oc>u!R zXS1KgUJG9y&EGD(y}L+*pLzo$AZw1(0fmg!u*0`Bdabc(c#9{6grGYW>Gt&s9euw( z2mfXWlh}VN8{xOnFLKW=2`qgG)gCI`kK9<5Il3?TVti)Y3p^&ot5!G%YgJbIgiACi zj+}ix?sFxiOtmu26VXTOI`73kX2h7Bqi!FG3<&9{cm&I{kp=rODA5wQ7zLC752e&!nd+83fNXX*|v>F*o9I}P%OG<*sxk8HFeL9Lfa%rmvBJ)$i{p5 z)ekp27HVL~t38w_ml2gJ?j7v{08H_6(h`~;%STzhiuwz0z;VVKx#Lkg0ySy&sU2dV z0dqx-ud^~5jkYj$?q{=@NJ@MSl*$~*x^(Kdc zB>wIv@wm2p@%mL4M)%_TLQMX6sXKHBZASBSVeWB!%x8=yX6t#?vEhS(ZnlDVm>gl>i+1@rY%r)v1P|0}^wryG=^MYSFny+;upO304dc*F+Vp|tF zOZ7qFHl=EGmJtDRT-%SQoVLiE=ZosyV6T#O6vEeOr$BB@P2zVF!o2A^qG0lgKgSg5 zWlt#Hu5pIeA;fOeF%zi^F3yZJkM+)bG1me-e>S^Bl*4;>GiqHkMRJDGnO8l%pBR+4 zG-Fs`XL4xVz>v)q%trB`Za!V-2eahdGOaj1PG_@cBKikT>{=YOOOK!EQs+2aW+C|3RLmn;zZGMVrr;`f55RNaFpJv$y5g zy*SEyR~&FEthh*E#<8YN4vkf#uc2LyAE)(9ANkzz9Lb0=w@9nTaXjCP;INy*ISeSc z_0IBRyKRypGmXM%fMY@)Y3I2Z1EH%~x8hvBOy8cmN`c~LHus=KWldT;$~@`&PNx)IwK>k7&#Lt zqr$MOG2FJ`_jnWtLF@GxAHPR2y{vR}uo#6xMn56M;((QSewV4PLg-^~8yxc%QUK>g z7`Af!cJ?bD*5(*YRSz|tG+}g4i2x)Ci7-2jiBkvgu2Xae?-`7G-G&Ah4oYEg1<=$E z5K-o8=I7kC_z~V+vLkc}fD*cM4k2%(QAh2t#K$;wsKAVu0@5;5t3}wYb{-!2(yyr~ za1eEC*%uPHevT0c0ay^1h0CE4ihv9!&^q2m9k#Z%BLqhDyH>1pxpTugDqK}hiS}Yy z{O+3(ND;_MlC^~6f+a-$^QZkrIU8&NapnulK}IjKF=oj(vv5(^cLr->sZ zFGS>@V9X8`O~(o+ZIB6=_oQ(rh~q`&7apM7$pL)orzk`-p|C;YM5{%9Gd^(WHU}G| zy%PCb!5t9ovXjVB;zLDX(9uc117QJgnKrAFd~3#53!4{OTU+ZM9p_GRGeCDHgr(1* z6|bUNTuU7t>aIkZb>s%pc`yz`&l}JBS|+Id3`6#K`3OxAH`s6H0Id`9>1TeK7ww|q zeiD52Z=f8y&St;zd>jEdPW9j9OOXTsIk5?{20QVjizK&#vFOmi zoD{6$x>#CvglIZE&!2SA1E$6V)=h@2bXw$(*8MAZar>F_ zgIG{P1i>urH(1y6IM^}XCkp4AS~<3{X+$vEz(}zQJOM&aLtS!x7uwHyF(US8o>{|6 z5LUT2gj1x>atfC{uS{*L${yJx(WvBJIIx%FUG1tIS}lr~3_>?Dn;9)c`Qr5QF5Q|z z0Mfuc;4M_LzypY@N(vi!q#a%I0N3|o4a*Y08AMtO6eENP=jmVz^*O`)+iRqH@r`ro zB*3jUN-s>oSQ<3Oy023QSwP2+kQ@bT`7Mu+SRv3i0JczDD4vMJFLsqd#PmDn8w3c8 z-_{jLuao7V=>YJ%bk3c;HGHZb!N@;D2LUIAS=*fYVXb70N%-S{PkFdej`Z2=yn@ZH zhnPBV4JAH?+2_WNGP%PWc(hkIrEC;LxJmD@B-Qq|NQ1r(s=r5X$x0`wiIn4nO6S-p zP}x=}wm0H51sqQOkQlK+eaS6B`fkZi2vJ7LSF@2wL{=%Z#{nZ}9VKh!Tl15#*HCT; za{|W*bL!3FdL|BmdV1%}(-{dux&&RMu(z{ofX+nRvp|*aoUGrDh!(`-u9%k}21|?$wUC+x^+6p*5$8K!*H&g7VFxkzL*<%1-xCaZ)S7+WG8rtS z%^Z5Q@VWUx6#XVuLMw%D$Ii;J4V{QTU%*qrV2iWPw10#&SYyHu}OTvnM9CFu! z%1X8jfA)S=8Bg@n+8ecWPGFXKDY4x(E+HKZDqm|CPxIbJKZ&rz2-vD#PmlrOHy!p3 zG0rY<5*w;U^OtP2llr<^+W>H>gnDuDrBRu`AsMxg=gkhPY{h@=?LpsmSI_GPmgp+cpb}Z}6k5&*9AU zH!zAGNORwU@#q>g7=PW^!z?n87g9qH@FpFoVYy8Y6g8P#>POaUAxzQ)wuLSiaHeb8 zx43g4xO{J>TfaL|F$#Ji@uIYC(5<6hx%sl_Y5lI~w1?_!1z(i^w;^Mf93PQ03L zLo6GE#ODJNCui`&HoW6+%-HUS97^yvUcu1v7>iPzhrK?xGbBP5U*R6%1iP?+y*i(W zlb$(3T~Ij>ZD~Lj8ChIggL?D&n-#z{=q0>v*Q5>oLwc5F$w^>@0Vfa}Lpz$MwPN&* z;D;Cq7Y4e>Btk0Tj_cLu)X zAcUA42vLT^#C3Od^~eVe@Wm(k`_GC4$2-!OAAYIs^D2;Xfd`a7XhUtRf2}Mk8t%aC z2dk93McA)GLUvnLfg(!Aso!B~teUlkp(+_KcSadI)|5Xi5ojOfMcDQVm?)iOH9N!k z;u?qDt(sH?A(%+p+mV&aAAd?j!@0-`GlCtudwPhAIS`yHJ5>!1S*o4J}K226)Fr}bq05aP%>;^IHL30 z1NCu@yY>ag$Cpj>+7Ipb>sQ_z=j%7V?E?L9aqFCu$pXalvq)$BlJ8{0tr!a<@?PAP z&(}sZx1Sbi)H-KRn8z5Nx6wloG}`F%Oh}9w__ZD12Kf=@Be6eUkdO3?#Gqr!f{%=| zGBte8X=5}!f*N`FH3m!YcC*vpE<1e|hjwI~+IbicGu1=*ShRd03v)E~f?}GhDAsWP z{-c{x3A4@9{9e^kwfQLx!qm1M%6qSy32&y$44sW7M`o7r4|&Pa(YUScn8p;cGpFJ^ zwzuqTjZ)ja+!n>{XZ}CTgWU=kA`{G!^;%la8c{L&`3faQK59R9Hbzr3TF<=0ROaiz z%1&b-WGJw|y6vJ~mVp5>WfuzVVXYVah_i+v*@Tbxb)6n$TRk@`Lb?uV`DL4Et0f8Z zWM2YavK|=9uoi2hh=CdVM`(5~rTzcf7n% zi&)=JDNqD2PJ2^K=xTKPKFdQvy|!o?;_xL0+iC}?(lgF?~mUEJLtx4>Hgv(&`JI5yj`?2ez85NY$1_N4Btfx z6r?YpK$x^eaC6_18tDE>!!@9SH%-C(wuf6jtSgN_11^r8$K?vp9C(P#!c5S(^`hPu zNDJ^T<6GbIw-+-c8Wdo>U8Tz95ynlnn5u8zus&h+(WR@7@H% zV6mSuY#_~uAF!ex6sDE|^i_>*N!bLRHa5pG>b%T3S~3H8tCD)VKvjOf4I-%l)*{WI>^kD&Po5{F46>rxPXOI^?4h z3M^y5bqPTf!d7W~1!)%+U>!ndS8@Rk*}O<-`@KCtp1S@((t;VL6S0)nyiPO0&P44a zf!A(2>v+{EUzb=;)h{1Dv++`=OMey07m3dM#ZBkoBty&Z4VN`9xriaE3+HpY`E8dC z1rDQy)lTudh>AWB5j~~|_T?)i)l$RTW%TctxTO3WJCN0{t3ZKs0+U!ofr{? z#B#e=q?NeL-Oq3MJu+c|sPn$Yj&waY`y6+81QFT!3qZQ6-b#0lD6_YK)R+m9tc-mWyND-X_xG{RBTo1AB^{u zq#?s@+iz1DhcY?YkKFSi=-4HO{>n9PCZ5}CEBs)@1MgU9v26OIRu>1?-}mx4F7Yuo zg^&E(suF-+R88xycS=oH#-LUxxFIhOMJCeN;ALJodbEZi={a35n$4GGO7mF}c#g%= zlU89o(p39~XeegH|0vC%xedJH2zf__m%DND>5Q?NzuNI;?@72z?DV2@g|^(jx#zT! zHb&`pY4oG1g~SvO+AbN=_@bIPfM%_%O7Hz)53FgHk#-xU5=6xP@}frc`TN5xtDZ#W z3LuP$?g_2(=l9V(a%4EgS^4)(9~RlJ+at>mNkN3kqNvZUtB4cVBDdkY`Brpz$1u#K zleTY3IXjG0RoO);t~Du5L$)z9O|O)u+<(y|{0KdVgVQif(BO&Fo!|nbQ7F%* z2n)kKr2XFagHiH?G9^73?X7WS7)flE(bE+CBB&-w+J|c6q!Ed3c*AnD@xxD3)K<9< z4py^j!c?9*i9z&a=VMHS8^BKZ5?afeDTiKTY)WjCJ+xoEO`|j~n(dbAB_(id=|%gN zjr;Rwt#V|%(x=wZ;$_++^59=uU;C2Z?zhl_@ie<&Z)0g}a469;6GHJ~Ioef)mosK( zp)zBWi+#UV5>GAJ+d$ijZ-EY_4|Q6u#HCOM;T=z>X~OWps9t_(XE_WRVG1398v_uF zl@(oHVRuiWnH%96iX#SK5hO44P(^hSE$z()7Qq3cWIj9ZQgd@Oh^qVdD6oOoFltFt zKHm>dFyj_i+H4wu+DU=%9NvO2MO1Xu*U+mPP^=6`K1;&FE1zU;6hSOHlAoV-U73Zm zYb<1MpjVFp#H#k%!feU?oXhJdj*~Fy5-KlR{h>Po-&Tgo9eLA^-CdM(n_OQk%XP4I33F><*@X^5*e@`sqsaIVaOsM&;3FI3B%=-BC8hH)V7RyCVE00 zX?zBbU^2Z#daiK)bTqRvY9e$%O*v)7SaSY{m~r|0Z1$r$jY%IK%Xe=SbYFiXfm^<)jBSxD|XgqE+S3BlTpG!$P@JrZnDhk+3) z@kq?-s7xs5mXzj=tYBp;ZmZBklO@haBSW-=V0rHjIXw*BL4^lvZpoe0`Zd#5_$;OD zN>q8)N|#D0Mdm?cQk7Dcx)odZgo0;`xjqs#0d@kO*3uw!?!;CZZw?!ceMZ~N`bfgo zfs%)*%l(a&c6u&Tix!it37AeaJM+<+gp>Mv0P&P8GAM_gR(KDUQCC@j1m($X6Pnp7 zTivbQ1ZWmi01)=TEPPHBIcTjNKh;Nx%-9Y-9wK`#CcR2)h8^<@DOp+R63dH(+T&kZkDC|>V z{CqpCwX9{f?gvEY;I%VUq9Pd@Oqx8gH{^PYWiVr3z;OMy{k<*h%Bb~dC5GFZ2ifeq z1XIlB3j#W;exPGPwm=i+U=CWkXIQhJqY-q8(Lu!kp?r5LId$!<-|%KCW6;I)(Ln_P zNm?!@=c`gzF*8`WmB6rH&j3Ey2;Ym=!;F5<<;sNoKE<-(fDk{LrRrt^% z%P}9{D%BehOBo9jG$fBQ%M6~mWLo$lgq2pa6DuO9O#OO$WDAqf&!M56sa(#o=%&F z!YhSD`$_Z{Lf4|vF!mnv@1GJ}u0Xlk)}7DM&UNFYP-ceojAQY*k^yHT=o+Y9^ob$- zRwQp|WadHdeks6n5VMMy6y(ntbEXLBXkd$+l4ixKgbeb$0}Ws5pZm2qaX={^aFUct zSCBjwI6r!prIXmi!WB=V-BcSOpUsDp+M@HyG?p;|Xp6JUk?Im?!NLZMq*vprixr-X z+~Mi|SRW$<17Au{d?bIq@8o~ZeAgDWPiBpWBL&<##YC)s)(?-5xk&^kb9?Io?54N;fQqb@)1fC7$&Jg+Lro!8+ zq_WMjWH95AbAl!z$gn|hn`)uWtRU58bk7J%M!!}}xg=tPf{3+df zh~}vMwbLs)n~5XDTNXFuc#*4F8r1F(qOS}Vjw0{jqJ2Mj*-RiBfj*5GgqHQj_+^`G zrU-mKj718E+)JAp*YYXmxqL>2N$u((vE^Ijc?dWM?1J-7kl!s(a0Hnt_?ymIJ_nH- zw5XCc)WqYkD#5k0HRGo<00x%7e+#&UCt>-54@t^8vF(CVaD~yh9MKVEe*`V5UoQ z2LO2==TD0PAD7swKt`a$9g%I47D}ROjFSa)zn^K6Ej?YACicc{Ty+o{=xGy*CLLE~ z(0GQbGOSLhtmNUA@xgFg)Qe88M_*__8)IFZ<4L%DkkSz)bg3ao7c-=v z-#|9yi+`I*lR6`)F4uwbL>C#P#h79OwFau|@)&V*h0apaQW!UtOy6_#ZK<$^6Xtm< zh+2xYXk&D(CQ|e#+1xCgPQ->F_7fD_1+>8!R4lxm>k@i- zl;W6ipJdyFI7dLI_zts9%4$O`9yz;m+2g2ILU9h=r}nn%5Z|y*1AOuL3>>V!eXzXO zfeRW@lex!D&p0kMx`=`B@6L=oTcQyo@yl4Kj@#RhOTA$V#8{{0DghBJi*BLgex*G4 zG>yOo0*xuuT+l*xGyUlFqM%9Zdu+NULX@VTDyRsMokqzN#^aZzXI%Wqhc`j4KlI|f zV0gcLn(z#fG`5Z}+;7X@Jkq?s#6^>D{EQ@jwbvWA3)^1cGFXCeR*B!Wljmu-$ys_H zxKv^@z#u%7C4BGjDMdtR=UBeNg2_NbI!QpU1xlq;5T|_C41{d-_Hd{k0Z8LDck9)0 zV6>*?1@kNbPhh$J4Ifk#pTTYRcFla60|egSF;!85V^=UdNzTfP%RhUNaOyio%raad zu7yuYK4fmHlct;I+0!p{t)9d(o`GPaonb8MbHvecsJzV}GaJRQ_)fkaigY+E;F#hd z9?~q@Z@gm_n*R&p{~?%AuVB>T5E+EECuP-epi4&7?k`)lTV~D;4FQaY85~mDJ@?hr z;wu)kp965h;6(Y|@T>bQQ`hKermjrzNI+7g`_S%H!;)!tS>=~GOGf7aW9Q{S`6!-e zwYlTUUlYZKxm@L@>y||rs4-~Rixg%A`ew%XB<)KBjYPpp7Yi-$n!2mQwK$JQiBp;E za?##s(>f#mgFObY>sQWK(h4EMD&XC0ZMX9$vG;U7sMD|?ZiutaSe?=3NH5Vc4&|VJ$6IA>HTxP|9AvIBcAMax0nMmB4!{nLl`Adn>hz_o!!g@GV zq(ij=$TM*_p+!DspQskE7>!cT2D%hpjfHGNcZzn*|2Q`9p011x)@;k*xq$vY1T~Oy z^r=mhYf?T7ST?U4R^!L57o;GvCID@lJC+XDP&LR>1I9j9?hjPCKBFL^l$S7eyoZe- z3lZ*goK2BwejJ1r9x*=K3}jMqS&4vE$`Ix&zONglKT^?^dY$C><`e*xxy0_(13!3H$9Xt72{(nAA;{ z4dg4Pb)*+C>J2+g&kftp9tX3g123~G(>9Ik=|+RfsIHbeo`9}|W#Vii*bdxS&*I7% zfI)bvXFM0no)d+ z?4zq{`*wAO8Q~L2PLz}F80WOD$=a>z?4t07aQ<1$yGt3W> z+S3$ReiK$4)Aep=%;DiCR#bFmO~m)tNQ(ZNgTIYKHX}Eckhe-rs*qOkUecIx2^k$q zsb%-;&kt!BftNXIn!{DZA;&IKYOcwDm5gc?=Ybf50?_cKQjET{;(?)AGByv7+Tr3iB4~QzhT2L?!=X9LAiY^{kg46kb>uVn+ANCi=gUbq zP;mSNgsqVM7^~z3qRLQWR^R$fE{buF$vAyQ)$sM19RYtIBzv!47vNp(UN-}$_@#*I zTp#6Z^Z_eo{~JtnUaV!z{H|*qQWqrA_NyB9Aw|*= z>kptcqk4@ils+N2kBv-CXFkN|6S!w_I4%aK?o8B6+8>S*V;lepUm-!gogvLvIo_JH z9R3zZRO>l1vQmsj@Y10lFTH~;-m^jC2rYv!TW2$I+w%~fmPi54c)ndEw-s-h&bFCB zh_3O~b@=Ivz`rHdi2HWQq?`4o$sC+PO(EcTQ!spd20d^;_O-5710K+@?yQ+F&#s0u z&zBzd(UJxj;fH-WM6`Nj4ngMtR;lR=p;cr6qF?4NgwkzTpCcn`e)`tq)XJh`m)Ahb zT+5&uZhNsT+zA0=@J&-=MquQRo-C7E%Of+2ONcu8Z%~Ygk-hv%yQR?58Suh7&H4hn zSApae%XW3J+GK2kANIYc>al8jq^Cm{5Eq1%KVk3yEk5r~%v>n~c>M!ElaOWR?3ES& zXfoy(XS1XNl5`_)c;qq4eK~HGcObO@TQq;Spq2s!NGH>7;-uw%i^TpEq0HOxR`LUs z1@c5{7UnMX+o0qPu_I7EE?(^Ugxf6`#PW*(hYD+t*cr)DpYJS@8AkE+5ii!iii;t{ zUqo;lROgQ0Vuy#&1WA7%w)c*qO~W_t4vo{bYZRtdA*r|&y=9mj$l%4SqUc*chZHff zHpoz%Ig3Lo3GQLw5=12#ilT)kGTjTrd;30XiXc&!9qJj3Ck84F@?+6?!@Z#)5-%M$ zF`KrDhjDwPehmY^*_dQfV^}nl8`}q(CMR6RR3aKU$WD_6pj3=dWvfPt%W2gVd)$1` zg5P(!*~jOa&>w)Qn%S^-zloY17z#;_Jx<+>c-!3Jga|-k+%lKI_Z1cZ=5)N6n}KGr z>SM-NH?i@6YWN-N1C{lbdq$tR`eG$WyLG`5S4hhCk5FkOO3?RveyYwqCNgi!u8AL(*dd>Q~&zpC~R}@*&Vws zdjMzJ?}x7I8oHtw=4gKtM6QP6=rIY~{rr6i#QLWFd^oniZarqCSb;EQ|f&)jHx|8B@(JXNz}6JNk*)4)QYrrmK7QN-O&{!^Ho<(@>vY;tIQ%qd5&gz4dJt`+7#mFEhom(ZbbaB z-ur~PYlLAx;od&&!jlC7ISTVovNI~|mb^|UqEmJLg7-u3dPBUE;!6RBZHX3zD1*!e zD8%9P$C6AB0aA+3jKes&n>mPa+#eAiW75x63YIQTgiB}|R#$(qFQC-~|x!{x90Yv?Lu!Iku+ygYnp7B-i zO!R}oC6Q`imVd(0#$FWI<;$3Loxm0#%gqkXW{6u)}vd&4LV zH|_}B%P;K__Kv=FNIa@RK#g2Ph#?3~M)2jF+Z(E5lzFd2EF4Iy9{u{)dbV!Z9$-_> zv=dQOPdp&O=~I9JzLq<$t(LoV&oA~eL?qALjOLzX`Q-@rj7EF=F7p|9gh{2|c15E6 zsAk{V;_-Wv>5rHR{CUP!r1Ivnw2VU1gJZtr#}Zk=%ZCiCV9n{#cXTNF7b&T<_Jd2q z%w~DGfhLxCmtQ<9is-w|4k<3@FffHX{aw;I1Qp@xOv&B zt8Odop^hXR(6{5p-mxPLv&u4>bKYykT;k>L2IAl#muYF4(dhZb+W9>sw$7|UfiK~7 ztaIDaewu_#!Tu0IzBK)%h?S}Pj^?dvfg_}vQiyq=?hr>8`Ng0jf#7X*080Zwf^PvxLfc!b_2$QLb}*w(HOkPE2H_`CcS+5Mhb$ z_5=;BDgB@f1WD1OKuh zX~;ynNo1LBH=r#knRK3JW z-S4OyZRJ+Y4<}!DytkrNx{k!WcDR1{e*63x8yvq^CceXU^!0kfFr4d~b(6o?g?cHVL4d7X`rCtH%Nym@GP`p0BtaLJysW&wvcYd2F6xEWjhow1 zsRv%_G$d9J`8G#B2mr?c>R?i?oaMN~AEQSuwXTtMy<m+ZJLE8y#jf%#`aa zwWjxSi%TZ0?eKGfqHGv{70hGJZBPC@rvtpa zVEVC#peNJBVnCc3)VrTv%uX8fQ5_>FALV3PP#vvPF|&sl6q2D>`zb>qSRMP!Fa~W3 z)x}-$%&*+i&#*qc#7`rDv@?R(bqS}-I#kDf))F?+lu@dd#x%Xt&Qw`P2CAcwH4a|I eHiJmbXP6`Gxw*YU@0dRyFU!d&OV>yO1OE@r`UJNC literal 0 HcmV?d00001 diff --git a/DjangoProject/Chatbot/static/css/style.css b/DjangoProject/Chatbot/static/css/style.css new file mode 100644 index 0000000..73508dd --- /dev/null +++ b/DjangoProject/Chatbot/static/css/style.css @@ -0,0 +1,139 @@ +body +{ + background-color:#dedede; + color: #000000; +} + +#container { + width: 1200px; + height: 1100px; + margin: auto; + border:thick blue solid; + background-color: black; +} + +#title { + font-family: 'Times New Roman', Times, serif; + width: 1300px; + height: 50px; + text-align: center; +} + +#TextContainer { + background-color: black; + border: thick solid black; + font-family: 'Times New Roman', Times, serif; + width: 910px; + height: 362px; + float: right; +} + +#nav { + height: 40px; + border-bottom: thick #03BAFC solid; +} +nav { + margin: 0; + padding: 0; + background: #03BAFC url(nav_bg.jpg) 0 0 repeat-x; + width: 100%; + float: left; + border: 1px solid black; + border-width: 1px 0; +} +nav li { + display:inline; + padding:0; + margin:0; +} + nav a:link, + nav a:visited { + color: white; + background: #03BAFC; + padding: 20px 180px 10px 180px; + float: left; + width: auto; + border-right: 1px solid black; + text-decoration: none; + font: bold 1em/1em Arial, Helvetica, sans-serif; + text-transform: uppercase; + text-shadow: 2px 2px 2px #555; + } +nav a:hover { + color:white; + background:black; +} +nav li:first-child a { + border-left:1px solid black; +} +#home #nav-home a, +#about #nav-about a, +#archive #nav-archive a, +#lab #nav-lab a, +#reviews #nav-reviews a, +#contact #nav-contact a { + background:Black; + color:#fff; + text-shadow:none; +} +#home #nav-home a:hover, +#about #nav-about a:hover, +#archive #nav-archive a:hover, +#lab #nav-lab a:hover, +#reviews #nav-reviews a:hover, +#contact #nav-contact a:hover { + background:black; +} +nav a:active { + background: White; + color: #fff; +} + +input[type=text], input[type=password] { + width: 100%; + padding: 12px 20px; + margin: 8px 0; + display: inline-block; + border: 1px solid #ccc; + box-sizing: border-box; +} + +button { + background-color: #03BAFC; + color: white; + padding: 14px 20px; + margin: 8px 0; + border: none; + cursor: pointer; + width: 100%; +} + +.loginbutn { + width: 100%; +} + +.cancelbtn { + padding: 14px 20px; + background-color: #f44336; +} + +.cancelbtn, .signupbtn { + float: left; + width: 50%; +} + +.clearfix::after { + content: ""; + clear: both; + display: table; +} + +.spaceforlogin { + padding: 16px; +} + +@media screen and (max-width: 300px) { + .cancelbtn, .signupbtn { + width: 100%; + } +} diff --git a/DjangoProject/Chatbot/templates/webpages/StudentLogin.html b/DjangoProject/Chatbot/templates/webpages/StudentLogin.html new file mode 100644 index 0000000..171c79a --- /dev/null +++ b/DjangoProject/Chatbot/templates/webpages/StudentLogin.html @@ -0,0 +1,51 @@ +{% load static from staticfiles%} + + + + + + + + + Student Login + + + + +
+ Student Login +
+ +
+
+
+ + + + + + + + + + Remember me +
+ Not a user ? .Click Here +
+ + + + + + \ No newline at end of file diff --git a/DjangoProject/Chatbot/templates/webpages/StudentReg.html b/DjangoProject/Chatbot/templates/webpages/StudentReg.html new file mode 100644 index 0000000..a439460 --- /dev/null +++ b/DjangoProject/Chatbot/templates/webpages/StudentReg.html @@ -0,0 +1,75 @@ +{% load static from staticfiles%} + + + + + + + + + Student Registration + + + + +
+ Student Registration +
+ + +
+
+
+ + + + + + + + + + + + + + Remember me +

By creating an account you agree to our Terms & Privacy.

+
+ +
+ + +
+
+ + + + \ No newline at end of file diff --git a/DjangoProject/Chatbot/templates/webpages/TeacherLogin.html b/DjangoProject/Chatbot/templates/webpages/TeacherLogin.html new file mode 100644 index 0000000..e00a9cf --- /dev/null +++ b/DjangoProject/Chatbot/templates/webpages/TeacherLogin.html @@ -0,0 +1,51 @@ +{% load static from staticfiles%} + + + + + + + + + Teacher Login + + + + +
+ Teacher Login +
+ + +
+
+ + + + + + + + + + Remember me +
+ Not a user ? .Click Here +
+ + + + + + \ No newline at end of file diff --git a/DjangoProject/Chatbot/templates/webpages/TeacherReg.html b/DjangoProject/Chatbot/templates/webpages/TeacherReg.html new file mode 100644 index 0000000..56cbb96 --- /dev/null +++ b/DjangoProject/Chatbot/templates/webpages/TeacherReg.html @@ -0,0 +1,58 @@ +{% load static from staticfiles%} + + + + + + + + + Teacher Registration + + + + + +
+ Teacher Registration +
+ + +
+
+ + + + + + + + + + + + + + Remember me +

By creating an account you agree to our Terms & Privacy.

+
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/DjangoProject/Chatbot/templates/webpages/TeacherRequest.html b/DjangoProject/Chatbot/templates/webpages/TeacherRequest.html new file mode 100644 index 0000000..1f11463 --- /dev/null +++ b/DjangoProject/Chatbot/templates/webpages/TeacherRequest.html @@ -0,0 +1,39 @@ +{% load static from staticfiles%} + + + + + + + + + Teacher Request + + + +
+ Teacher Request +
+ + +
+
+ +
+ + +
+ + + + + + \ No newline at end of file diff --git a/DjangoProject/Chatbot/templates/webpages/TermsAndPolicy.html b/DjangoProject/Chatbot/templates/webpages/TermsAndPolicy.html new file mode 100644 index 0000000..47f9fae --- /dev/null +++ b/DjangoProject/Chatbot/templates/webpages/TermsAndPolicy.html @@ -0,0 +1,94 @@ +{% load static from staticfiles%} + + + + + + + + + Terms And Policy + + +
+ Terms And Policy +
+ + +
+ +Teaching Portal Terms of Service +
+
+ +1. Terms +
+
+By accessing the website at http://www.TeachingPortal.com, you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using or accessing this site. The materials contained in this website are protected by applicable copyright and trademark law. +
+
+ +2. Use License +
+
+Permission is granted to temporarily download one copy of the materials (information or software) on Teaching Portal's website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not: +modify or copy the materials; +use the materials for any commercial purpose, or for any public display (commercial or non-commercial); +attempt to decompile or reverse engineer any software contained on Teaching Portal's website; +remove any copyright or other proprietary notations from the materials; or +transfer the materials to another person or "mirror" the materials on any other server. +This license shall automatically terminate if you violate any of these restrictions and may be terminated by Teaching Portal at any time. Upon terminating your viewing of these materials or upon the termination of this license, you must destroy any downloaded materials in your possession whether in electronic or printed format. +
+
+ +3. Disclaimer +
+
+The materials on Teaching Portal's website are provided on an 'as is' basis. Teaching Portal makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights. +Further, Teaching Portal does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on its website or otherwise relating to such materials or on any sites linked to this site. +
+
+ +4. Limitations +
+
+In no event shall Teaching Portal or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Teaching Portal's website, even if Teaching Portal or a Teaching Portal authorized representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you. +
+
+ +5. Accuracy of materials +
+
+The materials appearing on Teaching Portal's website could include technical, typographical, or photographic errors. Teaching Portal does not warrant that any of the materials on its website are accurate, complete or current. Teaching Portal may make changes to the materials contained on its website at any time without notice. However Teaching Portal does not make any commitment to update the materials. +
+
+ +6. Links +
+
+Teaching Portal has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by Teaching Portal of the site. Use of any such linked website is at the user's own risk. +
+
+ +7. Modifications +
+
+Teaching Portal may revise these terms of service for its website at any time without notice. By using this website you are agreeing to be bound by the then current version of these terms of service. +
+
+ +8. Governing Law +
+
+These terms and conditions are governed by and construed in accordance with the laws of Birmingham and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location. + +
+ + + \ No newline at end of file diff --git a/DjangoProject/Chatbot/templates/webpages/index.html b/DjangoProject/Chatbot/templates/webpages/index.html new file mode 100644 index 0000000..9e50b37 --- /dev/null +++ b/DjangoProject/Chatbot/templates/webpages/index.html @@ -0,0 +1,44 @@ +{% load static from staticfiles%} + + + + + + + + + Home Page + + +
+ Teaching Portal +
+ + +
+ + Welcome to our teaching portal, our services provide a stronger relathionship between teachers and students. If students have any queries regarding a certain subject or topic you are able to use this portal in order to submit or search for any questions. +
+
+ +
+
+ Discord: +
+ +
+
+ Email Us: +
+ +
+ + + + \ No newline at end of file diff --git a/DjangoProject/Chatbot/tests.py b/DjangoProject/Chatbot/tests.py new file mode 100644 index 0000000..de8bdc0 --- /dev/null +++ b/DjangoProject/Chatbot/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/DjangoProject/Chatbot/urls.py b/DjangoProject/Chatbot/urls.py new file mode 100644 index 0000000..89b343a --- /dev/null +++ b/DjangoProject/Chatbot/urls.py @@ -0,0 +1,13 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.index, name = "index"), + path('StudentLogin/', views.StudentLogin, name = "StudentLogin"), + path('StudentReg/', views.StudentReg, name = "StudentReg"), + path('TeacherLogin/', views.TeacherLogin, name = "TeacherLogin"), + path('TeacherReg/', views.TeacherReg, name = "TeacherReg"), + path('TeacherRequest/', views.TeacherRequest, name = "TeacherRequest"), + path('TermsAndPolicy/', views.TermsAndPolicy, name = "TermsAndPolicy"), +] + diff --git a/DjangoProject/Chatbot/views.py b/DjangoProject/Chatbot/views.py new file mode 100644 index 0000000..85cb4a3 --- /dev/null +++ b/DjangoProject/Chatbot/views.py @@ -0,0 +1,27 @@ +from django.shortcuts import render +from django.http import HttpResponse +# Create your views here. + +def home(request): + return HttpResponse("

Hello

") + +def index(request): + return render(request, 'webpages/index.html') + +def StudentLogin(request): + return render(request, 'webpages/StudentLogin.html') + +def StudentReg(request): + return render(request, 'webpages/StudentReg.html') + +def TeacherLogin(request): + return render(request, 'webpages/TeacherLogin.html') + +def TeacherReg(request): + return render(request, 'webpages/TeacherReg.html') + +def TeacherRequest(request): + return render(request, 'webpages/TeacherRequest.html') + +def TermsAndPolicy(request): + return render(request, 'webpages/TermsAndPolicy.html') \ No newline at end of file diff --git a/DjangoProject/DjangoProject/__pycache__/__init__.cpython-37.pyc b/DjangoProject/DjangoProject/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01c6c09866f5296a7333b1b496891f482df157f6 GIT binary patch literal 192 zcmZ?b<>g`kf*hGWu^{>}h=2h`Aj1KOi&=m~3PUi1CZpdI ztY_2su literal 0 HcmV?d00001 diff --git a/DjangoProject/DjangoProject/__pycache__/settings.cpython-37.pyc b/DjangoProject/DjangoProject/__pycache__/settings.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cdc5d10722c61f375ab0ecf785fdd41533f18726 GIT binary patch literal 2413 zcmb7FTXWM!6!t~29g~C*0)$JcXv-zg$dEA5GKHd8O7P&@L~_zl#L^Yi5lJb%sp_S4n*Oy-Yh zF@8!wyoQ(l4im~~8I(miJF8`J_8|95eq!eE%%^NLv;xX&MZ{?(E2GV#8B{<;R6?_; zj4oJ3t&HZ-JX$~((IUEpmVk2sUDoE%vXwy`x`M8vYiI>sw>XkTH$HM!R+~pRwFPtw zeHMGWhzscUryTnHV~%9CMZ}{!pvj{z;`z&X{)%KRPP>HeYD?&zb{S$>hW84*SJ8d# z+A+?9PdUI}K{+L}x@xRvGnukZC0NL?;%o7)!I0hr0%fpZL3AiOT z{u-jd&wnuNA*TPwmydfBj{bzg$TWlXqnG;H;dATJhbMPNN3?5=4iDaacz4gR%y)Oc zb=D6LU*4r%Y|z&aALHRu@8yW9!HsI)U|o+1#$Z5&bW!!(9o=!uh&V>nkCE-n2t)6xQN9}m7P>nzTp-TOpP=#ri;G+rE=Tos5 zkh;k@L|8-Ch#6PngyHli#)+CVZY0T@uzGgJCTwE9KQPSq&<(;5TfX7o)*vc-I$^gY z#eI}^n=tfk8dOp&hMj>84JUK~1iNV55JF<3redls#U=1F)1g&N2+i|p@L(F`w2pvq zcW4C<&!Oq#LueZoJW6$s%QVXB8OTw#gN-TW<4m4mFqW-yVR2KezLlGj#!0muB`k^U zwjNW(R$HyLno4k6`d8A9s70clf_%q^85R-l8AF>L*EZ^&~0yKvX_KA5KVFtTvL#pLFYBiXvz2|FEE-)Jb4t1%>Fc^y+7uNz zI_t2k$kiQL)!)iLhBK19+1U=~#d^K9CrkR9mZB=*LanK&zybyoh!U0?HA$+=d*Y59 z&h4~Xs@~bDS6j`ka8{KY?YgMSO1QYEY}X?FdaWu(wG?s(9&y82NmRwixe~639rcag z78PZ$wIk`fV!Z~!78K%qU2JZ5#BEuxwj>!~YYkb~T2M5l4uoBM@=Y_L>Q5dw!$QPU zHQ0#?o~lta;bKB>)#|bmm-Me0pNCS5r@u+{#eP&ubYC*ukzwzPgMnl)W54d1u!1YX zf;)unw@0k+x#?%)`P#<%zGC`hz`$^_FQ!)GKTBaS3QONP9va&C)dlcQcVXgkrTncT qm*;X^A(uTF1@45-Wea&OS?9*wg#uTM=;d-DAB}Pe5Ry^g^8Wy$b~4)l literal 0 HcmV?d00001 diff --git a/DjangoProject/DjangoProject/__pycache__/urls.cpython-37.pyc b/DjangoProject/DjangoProject/__pycache__/urls.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..99d482daf8026179ba3f3375c10aabdd36bc41fa GIT binary patch literal 1112 zcma)5&u-H&7FPQH+CI6ZsjfR#U5|R?P~7jTf7r@9K<}@X6}4@zO!;+yv5qIvvOAM%#D5Kv(5?~ zqu8h0*C^N_cP>I_b0TK)O367(48HkziHA~5v)MuslS$$GpHhZz7b-7^F-!@4i}Oqy ztmMKlZ5L>4B)-eoR~_PWsW6v{;Y>`W;uQogaz-@6nz4b8p{2$YdJsiaCOV`Qf3fBd z6UiecqJG$qj4ZN5N47WudL8-iz7Y;sdf=ZgL}JygX)Dl|AwH!P6M-{cNM!~XPnG1D zFUO=P>W_{3eqCQ#1_KR;uoTRu`@P;l?JJd>9biE?d)2e!Uf>UNqV?efjL`<_|5Qkm zGG&E?RZtr_?*Xe)|422qJ|uc&0d@Quj2_Mi&o(P}5ToJA1ehN)*iRJgq$@PEUxMuAhd3FVmx+|sj& zmz}yA{yf(PPERt;V8h3a&AH#ImP94G?+#O9Cel=>AA;SoGakd48js^AwGD7@R5np? z&QZDB@TTCxA>~0AzxcN{Z17gV%HGA&)0ttVXLBic8*;uQ)wNKz`@@EV(T!$GkIsl# zl6-Vp6lcVc(WOja2A6E62-l;lrAeizUq{D>NBz-tqO!uk!sc~+Ftg-gu`IVwxTK4m Uy?zR$+A@1i*Lmi2ThO=u0@znw!~g&Q literal 0 HcmV?d00001 diff --git a/DjangoProject/DjangoProject/__pycache__/wsgi.cpython-37.pyc b/DjangoProject/DjangoProject/__pycache__/wsgi.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7052ac5169a7ff9f25bb074c44b0c8d45b25c963 GIT binary patch literal 607 zcmZ8e!EO^V5cN7~6KyHtfO_KKYb3gh(gRY3Pzzh4R3)vnt&pNc8?&Bl9C>Zac2m+T zKLX;^f8a}2;>3wx;Dk46rNBs@@pv@zp69*U-3^g9@$ARP?*T%;n&iRS{&M7xec>HL zW5fc6MKBJ0YzbVo#;pKBFmHd|Vr{nd4g0M11&y~EPEl|B_GkDZ9SljK+(s5uml=yi<3aOenp*2;n(gK#&DBd{vUP0!Ahi zsn!hjUA&T)=Z;0m7Mc+8)L+Q-zJ#irWLHLRB%y zxF7Z7nYwW*W}t;yRv=w`V@n=~zx`6ss29{vOK^GfmT%Cg_mb1&(cnB!PcAQqqd}U# zKTodCPHy-9*+FE%IW9}v>(re*_eAo%#>&=D)^wu6{~~IJ8|>lg4#)*JO4gxoWH6=I z!qqz)xOd1jg09>jczc*#Sui$Bs9aK!9c!IXN3%0k_{{528d}-xV(Df|-iL#i`v?6j jEezMrH*PBSU)Ioy^s?^0TC4NA>yd5a+PI4!;m7zd*kr=% literal 0 HcmV?d00001 diff --git a/DjangoProject/DjangoProject/settings.py b/DjangoProject/DjangoProject/settings.py new file mode 100644 index 0000000..1b18718 --- /dev/null +++ b/DjangoProject/DjangoProject/settings.py @@ -0,0 +1,125 @@ +""" +Django settings for DjangoProject project. + +Generated by 'django-admin startproject' using Django 2.2.6. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/2.2/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'w=_-q7g+v1!ywsbgyqj^v^&agc^%9m2qq=%sbeas@*0eu4o=ys' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'Chatbot.apps.ChatbotConfig', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'DjangoProject.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'DjangoProject.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/2.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/2.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.2/howto/static-files/ + +STATIC_URL = '/static/css/' + +STATICFILES_DIRS = [ + os.path.join(BASE_DIR,"Chatbot/static/css/files") +] diff --git a/DjangoProject/DjangoProject/urls.py b/DjangoProject/DjangoProject/urls.py new file mode 100644 index 0000000..cfa0aa7 --- /dev/null +++ b/DjangoProject/DjangoProject/urls.py @@ -0,0 +1,25 @@ +"""DjangoProject URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/2.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include +from django.contrib.staticfiles.urls import staticfiles_urlpatterns + +urlpatterns = [ + path('admin/', admin.site.urls), + path('', include("Chatbot.urls")), + ] + +urlpatterns += staticfiles_urlpatterns() diff --git a/DjangoProject/DjangoProject/wsgi.py b/DjangoProject/DjangoProject/wsgi.py new file mode 100644 index 0000000..afc1411 --- /dev/null +++ b/DjangoProject/DjangoProject/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for DjangoProject project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoProject.settings') + +application = get_wsgi_application() diff --git a/DjangoProject/manage.py b/DjangoProject/manage.py new file mode 100644 index 0000000..5ab2319 --- /dev/null +++ b/DjangoProject/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoProject.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/my-site/Webpages/Bot/SQLite.db b/my-site/Webpages/Bot/SQLite.db new file mode 100644 index 0000000000000000000000000000000000000000..20ff7500ed8e69077b9f832599c4a8ede4102667 GIT binary patch literal 36864 zcmeI5U1-}@6vwaP*p8i8H>qj0Bx|iW>xY-MvEZU8rpm`aoQCMnPRJn!Ld?H zZk)20bZ=vO7;J+v*j@*Ny=>6Ip3BDe(h>%H7z|bleJSi|FQu?^Wl4_fR{dmS)C-tF0-9m>~Ux$IM*xm4I5;>oIJ)7mH)ea- zc99&3zZU9UCH`JD$lvU{!^iu63f=Afy|2($c$hQlNB{{S0VIF~kN^@u0!ZNL2*AHN zH^#@gtwBRsuBf%;%2HidYp3d}Zj`mE-eK?`o6k=a@?v4)&69aC+M!3qL%~3F5$cEr z3i-DSufUaETQo2=Q^>!SpAW_$Z0I&ISmf{{M(%p5$Sjv&%sA{9SWLl;X+UfBb+u^c zr*{}U?J+y_W@~N#R*NU9`i4y)7z^F5WtwrDZDrN8QSLC@L%BnDr`&9-^s-OLM>tZh zmehuRp#l#zOG@3)%2=`vB#iyv%;9g*)%roD8h?qh%r2>?l znshpv^**~7s>+($qO-sp+R8Au*}5@%zQbDBT;Jiz%1tW9J(fawXYF%pt*BNFWu+~| z-2Bw^#Qa(DME>ldsFh_b7^7d3e!+LZ=S%v`aU_jB8Z_B~7TA(wejyU!E+-sltaD9f z=83lxnQ3ozA|qxGmN`Y&H?&%*Wtk`zwR+WPCox%O{ZX<##l@MaQ;T`V+oEgL*Vb;< z72pBw-jetDg@XsV%cD-x7wj?5n&w<|cP8&>?RWo7eQlZD^VS$|ANY3bb`A_yqM)sp zi%wJ9lC?*bRWBrMf72;2gf%noj<25%!{dHyw4&J2@Dm9j0VIF~kN^@u0!RP}AOR$R z1dsp{c>V~4ph+CPM&J)_NB{{S0VIF~kN^@u0!RP}AOR$R1dzc0guoHbb5=OBs)-wl zE*h(KT5CAclhsUlpo?h4&4cD^LP2X{}T|HCK5mbNB{{S0VIF~kN^@u0!ZNbCvaew zm+X%XpIL=p=q~Hxu~|8HOsOqvRdKScHQ+IDp;%U{MRo6hmy8ZN<>r;#yizLH*DN_g zy<{Zf$R~1h@D{qRw+ajdy+jxgWH~;bOr@q3V^ya;Ub34C$ydiS8Pl-K2W7&7BsZjl zluDa6{w5jPA0zk4&r7_ld-nB16B#p_Xo@@(%JE()P&C((`{CoX=H8qT_zf7 zEZr>Aod4e@ben!p7n?iy;f4f|01`j~NB{{S0VIF~kN^@u0!RP}+@C-M%&|+B_BDLc zOG-%{ji=Ia39dei3=_hZLXg(2MGvF}qs}JfL422q1yw1osx{eO6hXEOpr2#9Rov9U zHViu{!cTdYHDff9m6Mh}=JQ1o!(_mTUaM3#b+uTpsdnU`RWz9n(XWVyu5M zd*3IIyF)IxApsdnlcvdJCX>!e@w6OIN!cVU zNdC9PJwWt;`kNGZfC}OdZsHei;?@I$!UE}CMOQWNsvdM}YtTjHZo7%s+{AC)#82JC zO*iqJo0xMGqi&+tMI^V}#9!RRZ`{O>+(g4oJmVq`bq5G6QwdM*#CbmVSno9qc{(+( zrO`jhKIB!C2v01`j~NB{{S0VIF~kN^@u0?&fL9<@>_hddF^`T2n_;1M|U z%>r+q=P>7q%sSGB^-CaZC4h3(P*-Y7g{=Wl)bvA*n3xlT^cJlDcZ1Ly^bQ>6{w%V@ zI*+kF!;)Vo}01`j~NB{{S0VIF~kN^@u0!RP}{PzUf=l>y}qs{q$IFsyU1lW`Q WOZJ)p?1^7kF#0|Fxt&V}`2PVS7E!tY literal 0 HcmV?d00001 diff --git a/my-site/Webpages/Bot/cosgraph.png b/my-site/Webpages/Bot/cosgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..b5cab6afd91a63fb14991e56ecbdbf0f5f6b020b GIT binary patch literal 30530 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 literal 0 HcmV?d00001 diff --git a/my-site/Webpages/Bot/jsonTest.json b/my-site/Webpages/Bot/jsonTest.json new file mode 100644 index 0000000..ecb58e7 --- /dev/null +++ b/my-site/Webpages/Bot/jsonTest.json @@ -0,0 +1,20 @@ +{ + "conversion":[ + { + "cmm":"float(numTo) / 100", + "feetm":"float(numTo) * 0.3048", + "inchesm":"float(numTo) * 0.0254", + "inchescm":"float(numTo) * 2.54", + "cmkm":"float(numTo) / 1000", + "cmmm":"float(numTo) * 10", + "mcm":"float(numTo) * 100", + "cminches":"float(numTo) / 2.54", + "cf":"1.8 * float(numTo) + 32", + "fc":"(float(numTo)- 32)/ 1.8", + "stkg":"round(float(numTo) * 6.35029)", + "lbkg":"round(float(numTo) * 0.453592)", + "kgst":"round(float(numTo) * 0.157473)", + "kglb":"round(float(numTo) * 0.157473)" + } + ] +} \ No newline at end of file diff --git a/my-site/Webpages/Bot/newGraph.png b/my-site/Webpages/Bot/newGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..6a57615522e55c290cc9829b2973c583814e9240 GIT binary patch literal 17542 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 literal 0 HcmV?d00001 diff --git a/my-site/Webpages/Bot/pythBot (3).py b/my-site/Webpages/Bot/pythBot (3).py new file mode 100644 index 0000000..982db46 --- /dev/null +++ b/my-site/Webpages/Bot/pythBot (3).py @@ -0,0 +1,370 @@ +import discord +from discord.ext import commands +import math +import string +import matplotlib.pyplot as plt +from discord.utils import get +import sqlite3 +import time +import json +from datetime import datetime +import numpy as np + +try: + conn = sqlite3.connect('SQLite.db') + print("Connected") + +except Exception as e: + print("Error connecting",str(e)) + +sqlclean = ["(",")",",","'"] + +client = commands.Bot(command_prefix = '') +lengthStr = 0 +contents = '' +msgAuth = '' +inQuiz = False +topic = '' +cursor = conn.cursor() +numbers = ["", ""] +questions = [] +counter = 0 +topicsIn = [] +questNum = 0 +questionsAns = 0; +userInQuiz = '' +longTpc = False +operatorPass = '' +lastDigit = False +topicCount = 0 +inConvert = False +inQuiz = False +timeSinceLast = 0 +cursor = conn.cursor() +cursor2 = conn.cursor() +questions = [] +answers = [] +questionNum = -1 +score = 0 +units = ["cm", "m", "f", "c", "kg", "st", "lb", "inches", "feet"] +sendToTeach = False +aggScore = 0 +numOfQs = 0 + +def writeToFile(user, question): + cursor.execute("INSERT INTO tbl_userQuestions (Question,User) VALUES (?,?)", (question,user)) + conn.commit() + + + +def scoreFunc(user, scorePass): + global timeSinceLast + currentScore = 0 + nowScore = cursor.execute("SELECT Score FROM tbl_users WHERE UserID = '{}'".format(str(user))) + nowScore = str(cursor.fetchone()) + for char in string.punctuation: + nowScore = nowScore.replace(char, '') + + print(timeSinceLast) + if time.time() > timeSinceLast + 5: + currentScore = int(nowScore) + scorePass + timeSinceLast = time.time() + cursor.execute('''UPDATE tbl_users SET Score = ? WHERE UserID = ?''', (str(currentScore), str(user))) + conn.commit() + +async def serverCreate(server, auth, channel): + await server.create_role(name="Teacher", colour=discord.Colour(0xffe600)) + await server.create_role(name="Student", colour=discord.Colour(0x00fffb)) + await channel.delete() + await server.create_text_channel("General") + await server.create_text_channel("Discussion") + await server.create_text_channel("Help") + + +async def convertFunc(numTo, unitFrom, unitTo, author): + ans = 0 + with open("jsonTest.json") as json_file: + data = json.load(json_file) + for p in data['conversion']: + print(p[unitFrom + unitTo]) + ans = eval(p[unitFrom + unitTo]) + print(ans) + await author.send(ans) + +async def startQuiz(topic,ctx): + global questionNum + global maxrows + global numOfQs + maxrows = cursor.execute("SELECT COUNT(*) FROM tbl_questions WHERE Topic = '{}'".format(topic)) + maxrows =str(cursor.fetchone()) + for char in string.punctuation: + maxrows = maxrows.replace(char, '') + maxrows = int(maxrows) + numberofquestions = maxrows + if questionNum == -1: + questionNum += 1 + numOfQs = maxrows + await ctx.send('Loading {} Test with {} questions'.format(topic,numberofquestions)) + + results = cursor.execute("SELECT Question FROM tbl_questions WHERE Topic = '{}' ORDER BY RANDOM() LIMIT {}".format(topic,numberofquestions)) + for x in range(0,numberofquestions): + results=str(cursor.fetchone()) + for punctuation in sqlclean: + results = results.replace(punctuation, '') + questions.append(results) +## await ctx.send('Question {}: {}?'.format(x+1,results)) + + answer = cursor2.execute("SELECT Answer FROM tbl_questions WHERE Question = '{}'".format(results)) + answer=str(cursor2.fetchone()) + for punctuation in sqlclean: + answer = answer.replace(punctuation, '') +## print(answer) + answers.append(answer) + await ctx.send(questions[questionNum]) + conn.commit() + global inQuiz + inQuiz = True + return(numOfQs, inQuiz) + +async def newQuestion(user, question): + results = conn.execute("SELECT * FROM tbl_questions") + splitQuest = question.split(" ") + userFound = False + print(results) + for row in results: + if str(user) in row and "Teacher" in row: + userFound = True + if userFound == True: + cursor.execute("INSERT INTO quizQuestions(Question,Answer,Topic) VALUES (?,?,?)", (splitQuest[2],splitQuest[3],splitQuest[4])) + await user.send("Question added to quiz") + else: + await user.send("Sorry, you do not have the correct permissions to add questions") + conn.commit() + +async def sinGraph(author): + with open('singraph.png', 'rb') as fp: + await author.send(file=discord.File(fp, 'singraph.png')) + +async def cosGraph(author): + with open('cosgraph.png', 'rb') as fp: + await author.send(file=discord.File(fp, 'cosgraph.png')) + +async def calculator(operator, numbers, author): + if operator == "+": + await author.send(float(numbers[0]) + float(numbers[1])) + if operator == "-": + await author.send(float(numbers[0]) - float(numbers[1])) + if operator == "*": + await author.send(float(numbers[0]) * float(numbers[1])) + if operator == "/": + await author.send(float(numbers[0]) / float(numbers[1])) + +testStr = "" +@client.event +async def on_ready(): + print('Bot is ready.') + + +@client.event +async def on_member_join(member): + students = cursor.execute("SELECT UserID FROM tbl_users WHERE AccountType = 'Student'") + students = cursor.fetchall() + role = get(member.guild.roles, name='Student') + for row in students: + print(row) + if str(member) in row: + await member.add_roles(role) + return() + else: + print("Failes") + await member.guild.kick(member) + await member.send("Sorry, you are not registered, please visit the website to sign up.") + + +@client.event +async def on_message(message): # event that happens per any message. + print(f"{message.channel}: {message.author}: {message.author.name}: {message.content}") + global inQuiz + global sendToTeach + global numOfQs + if "create server" in message.content.lower(): + await serverCreate(message.guild, message.author, message.channel) + if message.author == client.user: + return + if "convert" in message.content.lower(): + numTo = 0 + unitTo = "" + unitFrom = "" + posNum = 0 + foundNum = False + foundUnit = False + conStr = message.content.lower().split(" ") + for i in range(0, len(conStr)): + if conStr[i].isdigit() == True and foundNum == False: + numTo = float(conStr[i]) + foundNum = True + if conStr[i] in units: + if posNum < i and foundUnit == False: + unitNum = i + unitFrom = conStr[i] + foundUnit = True + else: + unitTo = conStr[i] + if numTo == 0 or unitTo == "" or unitFrom == "": + await message.author.send("Sorry, I could convert that.") + else: + await convertFunc(numTo, unitFrom, unitTo, message.author) + if "sin" in message.content.lower() and "graph" in message.content.lower(): + await sinGraph(message.author) + scoreFunc(message.author, 1) + return() + if "cos" in message.content.lower() and "graph" in message.content.lower(): + await cosGraph(message.author) + scoreFunc(message.author, 1) + return() + if sendToTeach == True: + global questionToAsk + if "yes" in message.content.lower(): + writeToFile(str(message.author), str(questionToAsk)) + await message.channel.send("Sending question to teacher.") + else: + await message.channel.send("Okay, not sending question to teacher") + sendToTeach = False + return(sendToTeach) + if inQuiz == True: + global questionNum + global score + global topic + userAnswer = message.content + if userAnswer == (answers[questionNum]): + await message.channel.send('Correct') + if questionNum >= (numOfQs - 1): + await message.channel.send('End of Test') + inQuiz = False + questionNum = -1 + storescore = conn.execute("INSERT into tbl_scores (Username,Score,TestType) VALUES (?,?,?)",(str(message.author),score,topic)) + score = score+1 + await message.channel.send("You scored " + str(score) + " out of " + str(numOfQs)) + conn.commit() + scoreFunc(message.author, score) + return(questionNum, inQuiz) + else: + questionNum += 1 + score = score+1 + await startQuiz(topic, message.channel) + else: + await message.channel.send('Incorrect') + if questionNum >= (numOfQs - 1): + await message.channel.send('End of Test') + inQuiz = False + questionNum = -1 + storescore = conn.execute("INSERT into tbl_scores (Username,Score,TestType) VALUES (?,?,?)",(str(message.author),score,topic)) + await message.channel.send("You scored " + str(score) + " out of " + str(numOfQs)) + conn.commit() + scoreFunc(message.author, score) + return(questionNum, inQuiz) + else: + questionNum +=1 + await startQuiz(topic, message.channel) + print("wrong") + if "graph" in message.content.lower(): + msg = message.content.lower() + newMsg = msg.split(" ") + lenYArg = newMsg[len(newMsg) - 1] + yValue = lenYArg[2:len(lenYArg)] + fig = plt.figure() + x = np.linspace(2*-np.pi, 2*np.pi, 100) + y = eval(yValue) + ax = plt.gca() + ax.plot(x, y) + ax.grid(True) + ax.spines['left'].set_position('zero') + ax.spines['right'].set_color('none') + ax.spines['bottom'].set_position('zero') + ax.spines['top'].set_color('none') + plt.xlim(2*-np.pi,2*np.pi) + plt.savefig("newGraph.png") + with open('newGraph.png', 'rb') as fp: + await message.author.send(file=discord.File(fp, 'newGraph.png')) + scoreFunc(message.author, 5) + return() + if "new" in message.content.lower() and "question" in message.content.lower(): + await newQuestion(message.author, message.content.lower()) + return() + if "+" in message.content.lower() or "-" in message.content.lower() or "/" in message.content.lower() or "*" in message.content.lower(): + global operatorPass + global lastDigit + msg = message.content.lower() + global numbers + author = message.author + numbers[0] = 0 + lastDigit = False + numbers[1] = 0 + count = 0 + numberList = 0 + done = False + while done == False: + if count >= len(msg) - 1: + done = True + if msg[count] == "+" or msg[count] == "-" or msg[count] == "*" or msg[count] == "/" : + operatorPass = msg[count] + numberList = 1 + if msg[count].isdigit() == True: + if lastDigit == True: + numbers[numberList] += msg[count] + else: + numbers[numberList] = msg[count] + lastDigit = True + elif msg[count] == ".": + numbers[numberList] += "." + lastDigit = True + else: + lastDigit = False + count += 1 + await calculator(operatorPass, numbers, author) + scoreFunc(message.author, 2) + return() + if "specific" in message.content.lower() and "question" in message.content.lower(): + inQuestion = message.content + askedQ = "" + inStringQ = inQuestion.split(" ") + userQuestion = inStringQ[2:len(inStringQ)] + for i in range(0, len(userQuestion)): + askedQ += userQuestion[i] + " " + specQuestion = cursor.execute("SELECT Answer FROM tbl_specQuestions WHERE Question = '{}'".format(askedQ)) + specQuestion = cursor.fetchone(); + if askedQ == specQuestion: + await message.channel.send(specQuestion) + else: + await message.channel.send("Sorry, I don't know the answer to that, would you like me to send a question to the teacher?") + sendToTeach = True + questionToAsk = askedQ + return(sendToTeach, questionToAsk) + if "what is" in message.content.lower() or "how" in message.content.lower(): + print(str(message.content)) + writeToFile(str(message.author), str(message.content)) + await message.channel.send("Question sent to the teacher.") + if "quiz" in message.content.lower() and "i want" in message.content.lower(): + inString = message.content + quizStr = inString.split(" ") + topics = cursor.execute("SELECT Topic FROM tbl_questions") + topics = cursor.fetchall() + topics = ["Maths","Science"] + for i in range(0,len(quizStr)): + if quizStr[i] in topics: + topic = quizStr[i] + await startQuiz(topic, message.channel) + await message.channel.send("Sorry, we don't have that quiz available.") + + +#@client.command() +#async def question(ctx, a: str): +# f= open("questions.txt","a+") +# f.write (str(ctx.message.author) + " " + a + "\n") +# f.close() +# await ctx.send(a) +#NjM4NTczNjcyMDAwNTIwMjAy.XbesHA.FNpICJ4J23UHubFxw5aXOE_y-9w +#NjM0NzIwNjY5NTAyMDEzNDcx.XbN_AA.yEuduzPPFeWep_gZ14948pWW2Ig +#NjMwNDYyMjk4NjExNTE1Mzkz.XciB-w.XF2Are-iPoYn9jbRkh1N7oGQEmM +client.run('NjM4NTczNjcyMDAwNTIwMjAy.XbesHA.FNpICJ4J23UHubFxw5aXOE_y-9w') + diff --git a/my-site/Webpages/Bot/pythjJson.py b/my-site/Webpages/Bot/pythjJson.py new file mode 100644 index 0000000..ff5c390 --- /dev/null +++ b/my-site/Webpages/Bot/pythjJson.py @@ -0,0 +1,6 @@ +import json + +with open("jsonTest.json") as json_file: + data = json.load(json_file) + for p in data['conversion']: + print(p[unitFrom + unitTo]) diff --git a/my-site/Webpages/Bot/singraph.png b/my-site/Webpages/Bot/singraph.png new file mode 100644 index 0000000000000000000000000000000000000000..7a7621f703379a0820f76310e5d13c4f9ffa1e0d GIT binary patch literal 30129 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 literal 0 HcmV?d00001 diff --git a/my-site/Webpages/Bot/wrongFunc.py b/my-site/Webpages/Bot/wrongFunc.py new file mode 100644 index 0000000..4dc40da --- /dev/null +++ b/my-site/Webpages/Bot/wrongFunc.py @@ -0,0 +1,390 @@ +import discord +from discord.ext import commands +import math +import string +'import matplotlib.pyplot as plt' +import sqlite3 +import time +from datetime import datetime +#import numpy as np + +try: + conn = sqlite3.connect('SQLite.db') + print("Connected") + +except Exception as e: + print("Error connecting",str(e)) + +sqlclean = ["(",")",",","'"] + +client = commands.Bot(command_prefix = '') +lengthStr = 0 +contents = '' +msgAuth = '' +inQuiz = False +topic = '' +cursor = conn.cursor() +numbers = ["", ""] +questions = [] +counter = 0 +topicsIn = [] +questNum = 0 +questionsAns = 0; +userInQuiz = '' +longTpc = False +operatorPass = '' +lastDigit = False +topicCount = 0 +inQuiz = False +timeSinceLast = 0 +cursor = conn.cursor() +cursor2 = conn.cursor() +questions = [] +answers = [] +questionNum = -1 +score = 0 +sendToTeach = False +aggScore = 0 +numOfQs = 0 + +def writeToFile(user, question): +## cursor.execute("INSERT INTO tbl_Questions (Question,User) VALUES (?,?)", (question,user)) + conn.commit() +def scoreFunc(user, scorePass): + global timeSinceLast + currentScore = 0 + nowScore = cursor.execute("SELECT Score FROM tbl_users WHERE UserID = '{}'".format(str(user))) + nowScore = str(cursor.fetchone()) + for char in string.punctuation: + nowScore = nowScore.replace(char, '') + + print(timeSinceLast) + if time.time() > timeSinceLast + 5: + currentScore = int(nowScore) + scorePass + timeSinceLast = time.time() + cursor.execute('''UPDATE tbl_users SET Score = ? WHERE UserID = ?''', (str(currentScore), str(user))) + conn.commit() + +async def startQuiz(topic,ctx): + global questionNum + global maxrows + global numOfQs + maxrows = cursor.execute("SELECT COUNT(*) FROM tbl_questions WHERE Topic = '{}'".format(topic)) + maxrows =str(cursor.fetchone()) + for char in string.punctuation: + maxrows = maxrows.replace(char, '') + maxrows = int(maxrows) + numberofquestions = maxrows + if questionNum == -1: + questionNum += 1 + numOfQs = maxrows + await ctx.send('Loading {} Test with {} questions'.format(topic,numberofquestions)) + + results = cursor.execute("SELECT Question FROM tbl_questions WHERE Topic = '{}' ORDER BY RANDOM() LIMIT {}".format(topic,numberofquestions)) + for x in range(0,numberofquestions): + results=str(cursor.fetchone()) + for punctuation in sqlclean: + results = results.replace(punctuation, '') + questions.append(results) +## await ctx.send('Question {}: {}?'.format(x+1,results)) + + answer = cursor2.execute("SELECT Answer FROM tbl_questions WHERE Question = '{}'".format(results)) + answer=str(cursor2.fetchone()) + for punctuation in sqlclean: + answer = answer.replace(punctuation, '') +## print(answer) + answers.append(answer) + await ctx.send(questions[questionNum]) + conn.commit() + global inQuiz + inQuiz = True + return(numOfQs, inQuiz) + +async def newQuestion(user, question): + results = conn.execute("SELECT * FROM tbl_questions") + splitQuest = question.split(" ") + userFound = False + print(results) + for row in results: + if str(user) in row and "Teacher" in row: + userFound = True + if userFound == True: + cursor.execute("INSERT INTO quizQuestions(Question,Answer,Topic) VALUES (?,?,?)", (splitQuest[2],splitQuest[3],splitQuest[4])) + await user.send("Question added to quiz") + else: + await user.send("Sorry, you do not have the correct permissions to add questions") + conn.commit() + +async def sinGraph(author): + with open('singraph.png', 'rb') as fp: + await author.send(file=discord.File(fp, 'singraph.png')) + +async def cosGraph(author): + with open('cosgraph.png', 'rb') as fp: + await author.send(file=discord.File(fp, 'cosgraph.png')) + +async def calculator(operator, numbers, author): + if operator == "+": + await author.send(float(numbers[0]) + float(numbers[1])) + if operator == "-": + await author.send(float(numbers[0]) - float(numbers[1])) + if operator == "*": + await author.send(float(numbers[0]) * float(numbers[1])) + if operator == "/": + await author.send(float(numbers[0]) / float(numbers[1])) + +testStr = "" +@client.event +async def on_ready(): + print('Bot is ready.') + +@client.event +async def on_message(message): # event that happens per any message. + print(f"{message.channel}: {message.author}: {message.author.name}: {message.content}") + global inQuiz + global sendToTeach + global numOfQs + if message.author == client.user: + return + if "sin" in message.content.lower() and "graph" in message.content.lower(): + await sinGraph(message.author) + scoreFunc(message.author, 1) + return() + if "cos" in message.content.lower() and "graph" in message.content.lower(): + await cosGraph(message.author) + scoreFunc(message.author, 1) + return() + if sendToTeach == True: + global questionToAsk + if "yes" in message.content.lower(): + writeToFile(str(message.author), str(questionToAsk)) + await message.channel.send("Sending question to teacher.") + else: + await message.channel.send("Okay, not sending question to teacher") + sendToTeach = False + return(sendToTeach) + if inQuiz == True: + global questionNum + global score + global topic + userAnswer = message.content + if userAnswer == (answers[questionNum]): + await message.channel.send('Correct') + if questionNum >= (numOfQs - 1): + await message.channel.send('End of Test') + inQuiz = False + questionNum = -1 + storescore = conn.execute("INSERT into tbl_scores (Username,Score,TestType) VALUES (?,?,?)",(str(message.author),score,topic)) + score = score+1 + await message.channel.send("You scored " + str(score) + " out of " + str(numOfQs)) + conn.commit() + scoreFunc(message.author, score) + return(questionNum, inQuiz) + else: + questionNum += 1 + score = score+1 + await startQuiz(topic, message.channel) + else: + await message.channel.send('Incorrect') + if questionNum >= (numOfQs - 1): + await message.channel.send('End of Test') + inQuiz = False + questionNum = -1 + storescore = conn.execute("INSERT into tbl_scores (Username,Score,TestType) VALUES (?,?,?)",(str(message.author),score,topic)) + await message.channel.send("You scored " + str(score) + " out of " + str(numOfQs)) + conn.commit() + scoreFunc(message.author, score) + return(questionNum, inQuiz) + else: + questionNum +=1 + await startQuiz(topic, message.channel) + print("wrong") + if "graph" in message.content.lower(): + msg = message.content.lower() + newMsg = msg.split(" ") + lenYArg = newMsg[len(newMsg) - 1] + yValue = lenYArg[2:len(lenYArg)] + fig = plt.figure() + x = np.linspace(2*-np.pi, 2*np.pi, 100) + y = eval(yValue) + ax = plt.gca() + ax.plot(x, y) + ax.grid(True) + ax.spines['left'].set_position('zero') + ax.spines['right'].set_color('none') + ax.spines['bottom'].set_position('zero') + ax.spines['top'].set_color('none') + plt.xlim(2*-np.pi,2*np.pi) + plt.savefig("newGraph.png") + with open('newGraph.png', 'rb') as fp: + await message.author.send(file=discord.File(fp, 'newGraph.png')) + scoreFunc(message.author, 5) + return() + if "new" in message.content.lower() and "question" in message.content.lower(): + await newQuestion(message.author, message.content.lower()) + return() + if "+" in message.content.lower() or "-" in message.content.lower() or "/" in message.content.lower() or "*" in message.content.lower(): + global operatorPass + global lastDigit + msg = message.content.lower() + global numbers + author = message.author + numbers[0] = 0 + lastDigit = False + numbers[1] = 0 + count = 0 + numberList = 0 + done = False + while done == False: + if count >= len(msg) - 1: + done = True + if msg[count] == "+" or msg[count] == "-" or msg[count] == "*" or msg[count] == "/" : + operatorPass = msg[count] + numberList = 1 + if msg[count].isdigit() == True: + if lastDigit == True: + numbers[numberList] += msg[count] + else: + numbers[numberList] = msg[count] + lastDigit = True + elif msg[count] == ".": + numbers[numberList] += "." + lastDigit = True + else: + lastDigit = False + count += 1 + await calculator(operatorPass, numbers, author) + scoreFunc(message.author, 2) + return() + if "specific" in message.content.lower() and "question" in message.content.lower(): + inQuestion = message.content + askedQ = "" + inStringQ = inQuestion.split(" ") + userQuestion = inStringQ[2:len(inStringQ)] + for i in range(0, len(userQuestion)): + askedQ += userQuestion[i] + " " + specQuestion = cursor.execute("SELECT Answer FROM tbl_specQuestions WHERE Question = '{}'".format(askedQ)) + specQuestion = cursor.fetchone(); + if askedQ == specQuestion: + await message.channel.send(specQuestion) + else: + await message.channel.send("Sorry, I don't know the answer to that, would you like me to send a question to the teacher?") + sendToTeach = True + questionToAsk = askedQ + return(sendToTeach, questionToAsk) + if "what is" in message.content.lower() or "how" in message.content.lower(): + print(str(message.content)) + writeToFile(str(message.author), str(message.content)) + await message.channel.send("Question sent to the teacher.") + if "show me the progress of" in message.content.lower(): + await message.channel.send("Loading Student Progress") + progressmsg = message.content + studentid = progressmsg.replace('show me the progress of ','') + print (progressmsg) + results = cursor.execute("SELECT Score, TestDate FROM tbl_scores WHERE Username = '{}'".format(studentid)) + results = cursor.fetchall() + await message.channel.send(results) + + + if "quiz" in message.content.lower() and "i want" in message.content.lower(): + inString = message.content + quizStr = inString.split(" ") + topics = cursor.execute("SELECT Topic FROM tbl_questions") + topics = cursor.fetchall() + topics = ["Maths","Science"] + for i in range(0,len(quizStr)): + if quizStr[i] in topics: + topic = quizStr[i] + await startQuiz(topic, message.channel) + await message.channel.send("Sorry, we don't have that quiz available.") + + if "convert" in message.content.lower(): + await message.channel.send("Do you want to: \n1.Convert Centigrade to Farenheit \n2.Convert Farenheit to Centigrade \n3.Convert Stones to KG \n4.Convert Pounds to KG \n5.Convert KG to Stones \n6.Convert KG to Pounds \n7.Convert Feet to Meters \n8.Convert Inches to Meters \n9.Run a Basic Compound Interest Calculator \n10.Run a Complex Compound Interest Calculator \n11.Exit\n") + condition = True + while condition == True: + ConverterOption = message.content + if "1" in ConverterOption: + print("Hello") + await message.channel.send("You have chosen to Convert Centigrade to Farenheit") + await message.channel.send("Input the weather in Centigrade") + C = message.content.lower() + F = 1.8 * C + 32 + await message.channel.send("Amount of Faren " + str(F)) + condition = False + + elif "2" in ConverterOption: + await message.channel.send("You have chosen to Convert Farenheit to Centigrade") + await message.channel.send("Input the weather in Farenheit") + C = (F- 32)/ 1.8 + await message.channel.send("Amount of Centigrade " + str(C)) + + elif "3" in ConverterOption: + await message.channel.send("You have choose to Convert Stones to KG") + await message.channel.send("How much stones do you weight?") + StoneToKg = round(stone * 6.35029) + await message.channel.send("You weight {0} Kg".format(StoneToKg)) + + elif "4" in ConverterOption: + await message.channel.send("You have choose to Convert Pounds to KG") + pounds = float(input("How much pounds do you weight?")) + PoundsToKg = round(pounds * 0.453592) + await message.channel.send("You weight {0} Kg".format(PoundsToKg)) + + elif "5" in ConverterOption: + await message.channel.send("You have choose to Convert KG to Stones") + kg = float(input("How much Kg do you weight?")) + KgToStone = round(kg * 0.157473) + await message.channel.send("You weight {0} Kg".format(KgToStone)) + + elif "6" in ConverterOption: + await message.channel.send("You have choose to Convert KG to Pounds") + kg = float(input("How much Kg do you weight?")) + KgToPounds = round(kg * 2.20462) + await message.channel.send("You weight {0} Kg".format(KgToPounds)) + + elif "7" in ConverterOption: + await message.channel.send("You have chosen to Convert Feet to Meters") + Feet_Value = input("Input the amount of Feet you want to convert to Meters") + MetersToFeet = float(Feet_Value) * 0.3048 + await message.channel.send("You are {0} Feet tall".format(MetersToFeet)) + + elif "8" in ConverterOption: + await message.channel.send("You have chosen to Convert Inches to Meters ") + Inches_Value = input("Input the amount of Inches you want to convert to Meters") + InchesToFeet = float(Inches_Value) * 0.0254 + await message.channel.send("You are {0} Feet tall".format(InchesToFeet)) + + elif "9" in ConverterOption: + await message.channel.send("You have chosen to Run a Basic Compound Interest Calculator") + deposit = int(input("How much money do you want to deposit in the account?")) + interest = int(input("What is the variable interest rate?")) + years = int(input("How many years is the money going to be deposited in the account?")) + value = (deposit * (((1 + interest /100)** years))) + await message.channel.send(value) + + elif "10" in ConverterOption: + await message.channel.send("You have chosen to Run a Complex Compound Interest Calculator") + deposit = int(input("How much money do you want to deposit in the account?")) + interest = int(input("What is the variable interest rate for the first set of years?")) + years = int(input("For the first set of years, how many years is the money going to be deposited in the account?")) + interest2 = int(input("What is the variable interest rate for the second set of years?")) + years2 = int(input("For the second set of years, how many years is the money going to be deposited in the account?")) + value = (deposit * (1 + interest/100)** years) + (deposit * (1 + interest2/100)**years2) + await message.channel.send(value) + + elif "11" in ConverterOption: + await message.channel.send("Bye") + condition = False + + +#@client.command() +#async def question(ctx, a: str): +# f= open("questions.txt","a+") +# f.write (str(ctx.message.author) + " " + a + "\n") +# f.close() +# await ctx.send(a) +#NjM4NTczNjcyMDAwNTIwMjAy.XbesHA.FNpICJ4J23UHubFxw5aXOE_y-9w +#NjI2MDc5MjgwODM2NjQwNzY4.XcVzpA.YIP5Rs77FJJgS6mkBqcG9KCRoig - mbot +#NjM0NzIwNjY5NTAyMDEzNDcx.XbN_AA.yEuduzPPFeWep_gZ14948pWW2Ig +client.run('NjM0NzIwNjY5NTAyMDEzNDcx.XbN_AA.yEuduzPPFeWep_gZ14948pWW2Ig') + diff --git a/my-site/Webpages/CenterOriginMatplotlib01.png b/my-site/Webpages/CenterOriginMatplotlib01.png new file mode 100644 index 0000000000000000000000000000000000000000..58da6b5b36922f9c37185d740bdbe8c52fa8c44c GIT binary patch literal 17771 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 literal 0 HcmV?d00001 diff --git a/my-site/Webpages/ContactIcon.png b/my-site/Webpages/ContactIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..9f7cd73f5cc8c1e6d335945dfa25c42b16599f2d GIT binary patch literal 44619 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 Z`AIfp;$?-)@qv6NNl{smDk1&A{{W1nU@8Cr literal 0 HcmV?d00001 diff --git a/my-site/Webpages/DiscordIcon.png b/my-site/Webpages/DiscordIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..ba8f06fd3be97dc3bed31ea6ae17e1250b58613d GIT binary patch literal 12253 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 literal 0 HcmV?d00001 diff --git a/my-site/Webpages/StudentLogin.html b/my-site/Webpages/StudentLogin.html new file mode 100644 index 0000000..c252cb0 --- /dev/null +++ b/my-site/Webpages/StudentLogin.html @@ -0,0 +1,49 @@ + + + + + + + + Student Login + + + + +
+ Student Login +
+ +
+
+
+ + + + + + + + + + Remember me +
+ Not a user ? .Click Here +
+ + + + + + \ No newline at end of file diff --git a/my-site/Webpages/StudentReg.html b/my-site/Webpages/StudentReg.html new file mode 100644 index 0000000..118a517 --- /dev/null +++ b/my-site/Webpages/StudentReg.html @@ -0,0 +1,73 @@ + + + + + + + + Student Registration + + + + +
+ Student Registration +
+ + +
+
+
+ + + + + + + + + + + + + + Remember me +

By creating an account you agree to our Terms & Privacy.

+
+ +
+ + +
+
+ + + + \ No newline at end of file diff --git a/my-site/Webpages/TeacherLogin.html b/my-site/Webpages/TeacherLogin.html new file mode 100644 index 0000000..81edd8e --- /dev/null +++ b/my-site/Webpages/TeacherLogin.html @@ -0,0 +1,49 @@ + + + + + + + + Teacher Login + + + + +
+ Teacher Login +
+ + +
+
+ + + + + + + + + + Remember me +
+ Not a user ? .Click Here +
+ + + + + + \ No newline at end of file diff --git a/my-site/Webpages/TeacherReg.html b/my-site/Webpages/TeacherReg.html new file mode 100644 index 0000000..ae5415b --- /dev/null +++ b/my-site/Webpages/TeacherReg.html @@ -0,0 +1,56 @@ + + + + + + + + Teacher Registration + + + + + +
+ Teacher Registration +
+ + +
+
+ + + + + + + + + + + + + + Remember me +

By creating an account you agree to our Terms & Privacy.

+
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/my-site/Webpages/TeacherRequest.html b/my-site/Webpages/TeacherRequest.html new file mode 100644 index 0000000..afb1ef2 --- /dev/null +++ b/my-site/Webpages/TeacherRequest.html @@ -0,0 +1,37 @@ + + + + + + + + Teacher Request + + + +
+ Teacher Request +
+ + +
+
+ +
+ + +
+ + + + + + \ No newline at end of file diff --git a/my-site/Webpages/TermsAndPolicy.html b/my-site/Webpages/TermsAndPolicy.html new file mode 100644 index 0000000..2301623 --- /dev/null +++ b/my-site/Webpages/TermsAndPolicy.html @@ -0,0 +1,92 @@ + + + + + + + + Terms And Policy + + +
+ Terms And Policy +
+ + +
+ +Teaching Portal Terms of Service +
+
+ +1. Terms +
+
+By accessing the website at http://www.TeachingPortal.com, you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using or accessing this site. The materials contained in this website are protected by applicable copyright and trademark law. +
+
+ +2. Use License +
+
+Permission is granted to temporarily download one copy of the materials (information or software) on Teaching Portal's website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not: +modify or copy the materials; +use the materials for any commercial purpose, or for any public display (commercial or non-commercial); +attempt to decompile or reverse engineer any software contained on Teaching Portal's website; +remove any copyright or other proprietary notations from the materials; or +transfer the materials to another person or "mirror" the materials on any other server. +This license shall automatically terminate if you violate any of these restrictions and may be terminated by Teaching Portal at any time. Upon terminating your viewing of these materials or upon the termination of this license, you must destroy any downloaded materials in your possession whether in electronic or printed format. +
+
+ +3. Disclaimer +
+
+The materials on Teaching Portal's website are provided on an 'as is' basis. Teaching Portal makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights. +Further, Teaching Portal does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on its website or otherwise relating to such materials or on any sites linked to this site. +
+
+ +4. Limitations +
+
+In no event shall Teaching Portal or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Teaching Portal's website, even if Teaching Portal or a Teaching Portal authorized representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you. +
+
+ +5. Accuracy of materials +
+
+The materials appearing on Teaching Portal's website could include technical, typographical, or photographic errors. Teaching Portal does not warrant that any of the materials on its website are accurate, complete or current. Teaching Portal may make changes to the materials contained on its website at any time without notice. However Teaching Portal does not make any commitment to update the materials. +
+
+ +6. Links +
+
+Teaching Portal has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by Teaching Portal of the site. Use of any such linked website is at the user's own risk. +
+
+ +7. Modifications +
+
+Teaching Portal may revise these terms of service for its website at any time without notice. By using this website you are agreeing to be bound by the then current version of these terms of service. +
+
+ +8. Governing Law +
+
+These terms and conditions are governed by and construed in accordance with the laws of Birmingham and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location. + +
+ + + \ No newline at end of file diff --git a/my-site/Webpages/testFile.php b/my-site/Webpages/testFile.php new file mode 100644 index 0000000..2e5511f --- /dev/null +++ b/my-site/Webpages/testFile.php @@ -0,0 +1,30 @@ +open('Bot/tesDb.db'); + } +} + +$db = new MyDB(); +if(!$db) +{ + echo $db->lastErrorMsg(); +} +$discordID = $_POST['Username']; +$password = $_POST['psw']; +echo $_REQUEST['Username']; + +$prepare = $db->prepare("INSERT INTO users (discordID,password, accountType) VALUES (?,?,?)"); +$prepare->bindParam(1, $Question); +$prepare->bindParam(2, $passwordPass); +$prepare->bindParam(3, $accountType); + +$accountType = 'Teacher'; +$Question = $discordID; +$passwordPass = $password; +$prepare->execute(); +$prepare->close(); +?> \ No newline at end of file diff --git a/my-site/index.html b/my-site/index.html new file mode 100644 index 0000000..730e141 --- /dev/null +++ b/my-site/index.html @@ -0,0 +1,42 @@ + + + + + + + + Home Page + + +
+ Teaching Portal +
+ + +
+ + Welcome to our teaching portal where we ..... +
+
+ +
+
+ Discord: +
+ +
+
+ Email Us: +
+ +
+ + + + \ No newline at end of file diff --git a/my-site/style.css b/my-site/style.css new file mode 100644 index 0000000..711227a --- /dev/null +++ b/my-site/style.css @@ -0,0 +1,138 @@ +body +{ + background-color:#2A3132; +} + +#container { + width: 1200px; + height: 1100px; + margin: auto; + border:thick blue solid; + background-color: black; +} + +#title { + font-family: 'Times New Roman', Times, serif; + width: 1300px; + height: 50px; + text-align: center; +} + +#TextContainer { + background-color: black; + border: thick solid black; + font-family: 'Times New Roman', Times, serif; + width: 910px; + height: 362px; + float: right; +} + +#nav { + height: 40px; + border-bottom: thick blue solid; +} +nav { + margin: 0; + padding: 0; + background: blue url(nav_bg.jpg) 0 0 repeat-x; + width: 100%; + float: left; + border: 1px solid blue; + border-width: 1px 0; +} +nav li { + display:inline; + padding:0; + margin:0; +} + nav a:link, + nav a:visited { + color: #000; + background: blue; + padding: 20px 180px 10px 180px; + float: left; + width: auto; + border-right: 1px solid black; + text-decoration: none; + font: bold 1em/1em Arial, Helvetica, sans-serif; + text-transform: uppercase; + text-shadow: 2px 2px 2px #555; + } +nav a:hover { + color:#fff; + background:black; +} +nav li:first-child a { + border-left:1px solid black; +} +#home #nav-home a, +#about #nav-about a, +#archive #nav-archive a, +#lab #nav-lab a, +#reviews #nav-reviews a, +#contact #nav-contact a { + background:Black; + color:#fff; + text-shadow:none; +} +#home #nav-home a:hover, +#about #nav-about a:hover, +#archive #nav-archive a:hover, +#lab #nav-lab a:hover, +#reviews #nav-reviews a:hover, +#contact #nav-contact a:hover { + background:black; +} +nav a:active { + background: White; + color: #fff; +} + +input[type=text], input[type=password] { + width: 100%; + padding: 12px 20px; + margin: 8px 0; + display: inline-block; + border: 1px solid #ccc; + box-sizing: border-box; +} + +button { + background-color: #4CAF50; + color: white; + padding: 14px 20px; + margin: 8px 0; + border: none; + cursor: pointer; + width: 100%; +} + +.loginbutn { + width: 100%; +} + +.cancelbtn { + padding: 14px 20px; + background-color: #f44336; +} + +.cancelbtn, .signupbtn { + float: left; + width: 50%; +} + +.clearfix::after { + content: ""; + clear: both; + display: table; +} + +.spaceforlogin { + padding: 16px; +} + +@media screen and (max-width: 300px) { + .cancelbtn, .signupbtn { + width: 100%; + } +} diff --git a/my-site/website.py b/my-site/website.py new file mode 100644 index 0000000..75fac48 --- /dev/null +++ b/my-site/website.py @@ -0,0 +1,20 @@ +from http.server import HTTPServer, BaseHTTPRequestHandler + + +class Serv(BaseHTTPRequestHandler): + + def do_GET(self): + if self.path == '/': + self.path = '/index.html' + try: + file_to_open = open(self.path[1:]).read() + self.send_response(200) + except: + file_to_open = "File not found" + self.send_response(404) + self.end_headers() + self.wfile.write(bytes(file_to_open, 'utf-8')) + + +httpd = HTTPServer(('localhost', 8080), Serv) +httpd.serve_forever()