From e55296ca552b05c3ed511fc8d55853358ea1f9aa Mon Sep 17 00:00:00 2001 From: Charles Tang Date: Tue, 5 Mar 2024 11:49:11 -0500 Subject: [PATCH] Student Portal v1, working login and display session information --- README.md | 32 +- db.sqlite3 | Bin 163840 -> 163840 bytes iridisite/.editorconfig | 0 .../__pycache__/settings.cpython-312.pyc | Bin 2835 -> 3040 bytes iridisite/settings.py | 6 +- requirements.txt | 2 +- .../__pycache__/admin.cpython-312.pyc | Bin 541 -> 541 bytes .../__pycache__/backends.cpython-312.pyc | Bin 1012 -> 1621 bytes .../__pycache__/models.cpython-312.pyc | Bin 4415 -> 4415 bytes .../__pycache__/urls.cpython-312.pyc | Bin 996 -> 1196 bytes .../__pycache__/views.cpython-312.pyc | Bin 4761 -> 8862 bytes tutoring_student/admin.py | 2 +- tutoring_student/backends.py | 23 +- tutoring_student/models.py | 13 +- .../static/tutoring_student/images/wait.gif | Bin 0 -> 81572 bytes .../templates/tutoring_student/index.html | 388 ++++++++---------- .../tutoring_student/registerSession.html | 32 -- .../tutoring_student/sessionConfirmation.html | 44 ++ .../tutoring_student/studentView.html | 105 +++++ .../templates/tutoring_student/tutorView.html | 50 ++- tutoring_student/tests.py | 12 +- tutoring_student/urls.py | 12 +- tutoring_student/views.py | 221 ++++++++-- 23 files changed, 593 insertions(+), 349 deletions(-) create mode 100644 iridisite/.editorconfig create mode 100644 tutoring_student/static/tutoring_student/images/wait.gif delete mode 100644 tutoring_student/templates/tutoring_student/registerSession.html create mode 100644 tutoring_student/templates/tutoring_student/sessionConfirmation.html create mode 100644 tutoring_student/templates/tutoring_student/studentView.html diff --git a/README.md b/README.md index ab400b0..39011cb 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,29 @@ # Iridium Tutoring Dashboard -[Iridium Tutoring](https://www.iridiumtutoring.org) is a nationwide 501(c)(3) nonprofit tutoring organization serving K-12 students with free, personalized educational support in all subjects. Our mission is to provide high-quality, accessible, and equitable tutoring to students in need, regardless of their background or financial status. We are committed to helping students reach their full potential and achieve academic success. +[Iridium Tutoring](https://www.iridiumtutoring.org) is a nationwide 501(c)(3) nonprofit tutoring organization serving K-12 students with free, personalized educational support in all subjects. Our mission is to provide high-quality, accessible, and equitable tutoring to students in need, regardless of their background or financial status. We are committed to helping students reach their full potential and achieve academic success. + +This dashboard streamlines the tutoring session registration process and tutor sign-up process to a non-Google-Sheets/Forms hosted platform. Developed by the 2024 Iridium Tutoring director team (Charles Tang). Utilizes Model-View-Template (MVT) architecture for Tutors, Students, and TutoringSessions. -This dashboard streamlines the tutoring session registration process and tutor sign-up process to a non-Google-Sheets/Forms hosted platform. Developed by the 2024 Iridium Tutoring director team (Charles Tang). ## Tech Stack - **Frontend**: Django, HTML, CSS, JavaScript - **Backend**: Django, SQLite -- **Deployment**: *To be determined* +- **Deployment**: DigitalOcean ## Features -- Admin dashboard (manage tutor, student, session registrations) -- Tutor dashboard -- Student session registration -- Model-View-Template (MVT) architecture for Tutors, Students, and TutoringSessions +[x] Admin dashboard (manage tutor, student, session registrations) +[x] Student session registration (sign up for tutoring sessions, email confirmation, automatic account generation) +[] Student dashboard (login/logout, see past/upcoming sessions, register session, see tutor details) +[] Tutor dashboard (login/logout, see available sessions, see historical sessions, volunteering hours, sign up for sessions, past taken sessions, add sessions) +[] Admin dashboard (sort by model, create new tutor form, create new session form) +[] Deployed onto DigitalOcean (thanks to nonprofit credits), subdomain of iridiumtutoring.org -## Future Features -[] Student dashboard + auth -[] Tutor auth -[] Director auth -[] Full site ported from Google Sites +## Notes -## How To Run +Since we are deploying with a SQLite single-file database, we will need to download the database from the server every time we deploy. This is not ideal, but it is the best we can do with our current resources. -We assume you have the latest version of Python installed. +## How To Run +We assume you have the latest version of Python installed. 1. Clone the repository ```bash @@ -35,7 +35,7 @@ We assume you have the latest version of Python installed. pip install django ``` -3. Run the server. +3. Run the server. ```bash python manage.py runserver -``` \ No newline at end of file +``` diff --git a/db.sqlite3 b/db.sqlite3 index 8866e4d42fa18efedd526150aac32fac73bb9e9c..e294218af68db37a1274ea81d3673de3d8ac588a 100644 GIT binary patch delta 4301 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 diff --git a/iridisite/.editorconfig b/iridisite/.editorconfig new file mode 100644 index 0000000..e69de29 diff --git a/iridisite/__pycache__/settings.cpython-312.pyc b/iridisite/__pycache__/settings.cpython-312.pyc index 5a376aad87250a4a05550d002dd9172ad6859f21..07833ac84262a0aa8cbc2864b9e73670bd1bb9c5 100644 GIT binary patch delta 425 zcmbO%_CTEPG%qg~0}!lnc%CZ2Kao#@iGy*XMoE1NYZO-sTNHN+dlXL!M-*>5Lkj02 z#wb1@%>|_SQ@Eo9Qg~8WQb00%ix@K*Q~2jFr!z(grU*m{r3j`7rLv_6S8+2iq=?L6 z%4CcZP7zHJ1F8~D5eJhJU{W%ZF`Xq!1Zaj7&{WYBX`l&WDKb%#;wiFG5-BWEl0Yn# zA{Ql{A|EAFsi3L2S%tBc(WOcvH!(9uFS95!C9^cQq_iZzC^IizFTW_gN;)sUD77G` z(gBO)EjB|VV-r)eOm8LzhRrLPzA!WLY@Wv^z{sS@Jb4|vCZopW4eV0v!6l_Bsd*)n z&$Bl$%1#d8h_~f(^>y_0iTCgi4!OmTV8@3By9V77MiK~c3=R(W4|2H$)e+zy6ta08 zhb1GI4ltA%fw)+6@<&cL@dv!>4O};b^c(nZh{;`G5Wc}H(7^SHW3naJRJKnF4AOB- NlW%dEvSY5)KL delta 22 ccmbQsGM9z-G%qg~0}$vhc$|85Bd-7x06}a8`v3p{ diff --git a/tutoring_student/__pycache__/backends.cpython-312.pyc b/tutoring_student/__pycache__/backends.cpython-312.pyc index 726d3287b2a1d10f8e51346e51b8e9f6698223d0..304e16dc5213ec8f0958341a6556294f25c0667d 100644 GIT binary patch delta 763 zcmY*W&1(}u6n`_5{YcV$)U3Oa#9CaJvL1v6#DYaoDMhd=T0smdgzSnRNduG3p|X-z zdgw{IESQUDsZc`%8tqDpZo_t#+;^)6LPGEsT@xs;AQ16OLuN|-HiH%DVG_;m zD#uz2{z6AF+KRC`x2+hTl|t|l-$Jj06XcxE{V4~D2Xa`0K8^|s%?}xWb$Tj!@aLsc z`LVNPTV;WP}NkTL9Va&YKT zPOA)_kRlvqim$=@m9^RbyTyhnmhSZn{zz^+UY&O zT5^59Cqi0VZ|-Qh@7hGm^S$k~{%1F(c2asfrT+pH&3?^jJ;LOEo!9nEFTksK0p4dW z%H)HDE;C^g%d)7(SeoMy?jkIAf}0$;HQHB9$PRosW0_Lmk?FhP#KQfCLH{S(muIUr syHRm2P=m!Fo=s=K3Pb1zoc#tT`*I8^8?$|2qMwhW?8cqnz(n}dUmc5~`Tzg` delta 288 zcmcc0^M#%7G%qg~0}$j1JWUl~n#d;+Z3N^^XGmd4Va#F3WsG8EWJqC3Va{R7WsYKI zWME=&XGmdbVMt+3Wn9e+(#gOO#Zt+p$^H_=)MUKHE0P0pL9Qwm2NEBc85tR$GML_Fko>~J#V9ht<|_k`0&4^SDp5gU diff --git a/tutoring_student/__pycache__/models.cpython-312.pyc b/tutoring_student/__pycache__/models.cpython-312.pyc index 6eaf0a834fe837b501696c7c390cd4882aa42e88..dea83799134999e3a7c7be5bfe8647061351ff90 100644 GIT binary patch delta 22 ccmdn5v|ow$G%qg~0}!woKTqx2$ZI4B07cIQ&j0`b delta 22 ccmdn5v|ow$G%qg~0}y!gJWbuOk=IBN07tY25dZ)H diff --git a/tutoring_student/__pycache__/urls.cpython-312.pyc b/tutoring_student/__pycache__/urls.cpython-312.pyc index 017597a176de89e519cd12c08c4a38c08ea2d45a..7e7afcb17748c0cb4a8b8e0e54a3d2aa8dc10386 100644 GIT binary patch literal 1196 zcmaKr!B5mc6vn5!UD&1Uc3}aRRn!o{0AV?C0YZ$Z2?6TYVK|s@a;BX|Y#QhAI^VqC_okhB{hZBq0X`ls z{Y1YL0DKoB99cOzeW3vG3P1oA3)Gd0q5znHNh?uLR+4v};beNi0f4%aTqJQarG<*=SV7>5;Tp z(?k$|2+>985kWK;DTpB2hZSVyg>xG-jo0Rv#y7U+u=Gp;jkIuG6XOC_^@YH30?driudw9Av fJpJ*Wr!M^;n{5qq>$0b=oD{nB#50XtI5g-F^UTdAw<*Jqj)NX zHAN=xVANCME-ooeNzE$>%SG^u4MLESqpdh%#P{azNI1&pA z;z0%%aR9kRppY!$0TH|)f)7OS1BqMwX!hLV1{zh6IJts3IZzU)fDwp`X90;1%#4hT zcNt`!G6+B5mTlnp$i~3R*&#cFbw2k@?iK1+Sd4D6aCAsdNS&TPF@J^k6&8z|KzZF6 wqSqz0FG^}}(7VFwI608TL0Wo7=yh46i?T)+EP<+gKJat!Gc|G-i39Bb0K)`%_5c6? diff --git a/tutoring_student/__pycache__/views.cpython-312.pyc b/tutoring_student/__pycache__/views.cpython-312.pyc index 003b881593b869f1680ccf93783af45c19f90174..979768b4fa25acf2a8204e3c3d2c68b92bc768a2 100644 GIT binary patch literal 8862 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 literal 0 HcmV?d00001 diff --git a/tutoring_student/templates/tutoring_student/index.html b/tutoring_student/templates/tutoring_student/index.html index 90a56c5..15cf795 100644 --- a/tutoring_student/templates/tutoring_student/index.html +++ b/tutoring_student/templates/tutoring_student/index.html @@ -8,6 +8,7 @@ integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous" /> + Iridium Tutoring @@ -15,16 +16,34 @@ @@ -34,218 +53,157 @@

Register for a Tutoring Session

-
-
-
- {% csrf_token %} - -
- - -
- -
- - -
Your email will not be shared with external entities.
-
- -
- - -
Please schedule at least 2 days into the future.
-
- -
- - -
Our tutors are available from 3pm to 10pm every night.
-
- -
- - -
Most commonly, sessions are 0.5, 1, or 1.5 hours.
-
- -
- - -
- -
- - -
Please specify the specific topic to be covered. (i.e. SAT Math - Right Angle Geometry)
-
- -
- - -
- -
- - -
- -
- -
-
+ > +
+ Please specify the specific topic to be covered. (i.e. SAT Math + - Right Angle Geometry) +
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
-
+
- - {% comment %} -
- {% csrf_token %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {% endcomment %} - - diff --git a/tutoring_student/templates/tutoring_student/sessionConfirmation.html b/tutoring_student/templates/tutoring_student/sessionConfirmation.html new file mode 100644 index 0000000..f44ed69 --- /dev/null +++ b/tutoring_student/templates/tutoring_student/sessionConfirmation.html @@ -0,0 +1,44 @@ + + + + + + Iridium Tutoring + + + +
+ {% if error_message %} +
+

{{ error_message }}

+
+ {% if button %} + Back to Home + {% endif %} + {% else %} + {% if tutoringSession %} +
+

Thank you for registering, {{ tutoringSession.student.studentName }}!

+

Here are the details of your tutoring session:

+
    +
  • Student: {{ tutoringSession.student.studentName }}
  • +
  • Subject: {{ tutoringSession.subject }} - {{ tutoringSession.description }}
  • +
  • Date: {{ tutoringSession.date }} - {{ tutoringSession.time }} ({{ tutoringSession.duration }} hours)
  • +
+

A tutor will reach out soon about the details of your session. If you have any questions, please contact us at iridiumtutoring@gmail.com.

+ {% if button %} + Back to Home + {% endif %} +
+ {% endif %} + {% endif %} +
+ + + + diff --git a/tutoring_student/templates/tutoring_student/studentView.html b/tutoring_student/templates/tutoring_student/studentView.html new file mode 100644 index 0000000..b975695 --- /dev/null +++ b/tutoring_student/templates/tutoring_student/studentView.html @@ -0,0 +1,105 @@ + + + + + + + + + {% load static %} + + + + {% if user %} + +
+

Your Tutoring Sessions

+
+
+ {% if tutoringSessionList %} + + {% endif %} {% if not tutoringSessionList %} +

No history of tutoring sessions.

+ {% endif %} +
+
+
+ {% else %} + +
+
+
+
+

Student Portal

+
+ {% csrf_token %} +
+ + + + +
+ +
+ + + + +
+
+
+ {% endif %} + + + + diff --git a/tutoring_student/templates/tutoring_student/tutorView.html b/tutoring_student/templates/tutoring_student/tutorView.html index 173c3e1..cee9a24 100644 --- a/tutoring_student/templates/tutoring_student/tutorView.html +++ b/tutoring_student/templates/tutoring_student/tutorView.html @@ -13,7 +13,7 @@ {% load static %} -