This Django tutoring app was developed as a tutor/student portal for Iridium Tutoring, 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 is a B2C tutor + student web application that streamlines the tutoring session registration process and tutor sign-up process and replaces Excel/Google-Sheets/Forms platforms. Utilizes Model-View-Template (MVT) architecture for models Tutors
, Students
, Tutoring-Sessions
, and Recurring-Sessions
; views studentView
, tutorView
, index
, etc
; and Bootstrapped configurable templates for each view. Developed by the 2024 Iridium Tutoring's founder, Charles Tang.
Italicized features are prioritized for implementation. These are ordered in terms of priority.
Fork this repository and create a new branch for your feature. Once you are done, create a pull request to merge your branch into the main branch.
We assume you have the latest version of Python installed.
Clone the repository
git clone https://github.com/charlestang06/iridisite.git
Install the required packages
pip install django
Make migrations
python manage.py makemigrations
python manage.py migrate
Run the server.
python manage.py runserver
Run the app on your local machine and ensure it works. (see previous steps)
Connect to CPanel and create a new MySQL database. Create a new user and assign the user to the database. Ensure the user has all privileges.
Under CPanel Domains
tool, create a new subdomain (i.e. portal.iridiumtutoring.org) on your CPanel. Link it to the directory public_html/portal, or the directory of your choice.
Ensure settings.py
is configured with MySQL database settings, DEBUG = False
, and ALLOWED_HOSTS = ['*']
.
Run python manage.py collectstatic
to collect all static files into the static directory.
Zip the entire project folder and upload it to the root directory of your CPanel. Extract the contents into the subdomain directory.
Under Create Python App
tool, create a new Python application. Select the subdomain you created in step 2. Make sure you select the highest Python version (3.11.5).
Add environment variables for all email settings, database settings, and Django secret key.
With an FTP client, configure the passenger_wsgi.py
file with the following contents.
# passenger_wsgi.py
import os
import sys
from iridisite.wsgi import application
9. From the dashboard, install all dependencies through the `pip install` tool with the `requirements.txt` file. If you have any issues, you can install the packages manually through the `python` tool.
10. In the `python` tool, run `manage.py makemigrations` and `manage.py migrate` to create the database tables.
11. Restart the Python application and visit the subdomain to see if it works.