Skip to content

UBC-MDS/dsci-522-group-23

Repository files navigation

Predicting Academic Performance in Mathematics using Demographic and Student Behavioral Data

dsci-522-group-23

Author: Zhengling Jiang, Colombe Tolokin, Franklin Aryee, Tien Nguyen

Summary

This project investigates whether a student's mathematics performance can be predicted with linear regression using demographic and behavioral data, aiming to help educators in supporting students and tailoring educational strategies.

Report file

  • The main report file is report.qmd.
  • You can view the GitHub page rendering of the latest version of the report here.

Usage

This section details the step to install the softwares and packages to run the analysis

Clone the git repository from GitHub

In your terminal, please run the following commands:

git clone git@github.com:UBC-MDS/dsci-522-group-23.git

or

git clone https://github.com/UBC-MDS/dsci-522-group-23.git

Launch Jupyter Lab and run the analyses

  1. Navigate to the root of this project on your computer and run the following command to create and start containers:

    docker compose up
  2. In the terminal, look for a URL: http://127.0.0.1:8888/lab. Copy and paste the URL into your browser and change 8888 to 8889 manually.

    Example Usage Example2
  3. To regenerate the artifacts (datasets, figures, tables, html file, etc) and rerun the analysis, make sure you are in the root directory of the project (work directory of the Docker notebook). Open the Terminal GUI of the Docker Jupyter Lab and run

make clean
make all

Example Usage

  • This process will reproduce the analysis artifacts and generate the report.html and report.pdf files for review. The .html file can be viewed in any web browser, while the .pdf file can be opened with any standard PDF reader on your computer.

(Optional) To rerun the unit tests

make tests

Clean Up

  1. Shut Down the Container

    To stop the container, press Ctrl + C in the terminal where you launched the container using docker compose up.

  2. Remove the Container

Once the container is stopped, remove it and its associated resources by running:

docker compose rm

Dependencies

Update the Container

If you need to change the container, follow this workflow:

  1. Add the new dependency or any chagnes in the emvironment.yml file.

  2. Update the lock file: run

    conda-lock -k explicit --file environment.yml -p linux-64 

to update the conda-linux-64.lock file.

  1. Build the Docker image locally to test it and verify the container starts correctly. Make sure you're in the root directory of the project. The command you can use is:

    docker build -t <image-tag> --platform=linux/amd64 .
    docker run --platform linux/amd64 \
    -p 8889:8888 \
    -v "$(pwd):/home/jovyan/work" \
    --name student-performance-predictor \
        <image-name:image-tag>

    Replace <image-tag> and <image-name> with the proper values you want to name it

  2. Push the updated branch to Github. The updated image will be automatically built and pushed to Docker Hub with the GitHub Workflows. The tag of that auto-build image is the same as the commit SHA.

  3. Modify the docker-compose.yml file to reference the updated Docker image. Commit the changes to the same branch.

  4. Open a PR to merge your branch into the main branch.

License

The project follows a dual licensing structure:

If re-using or re-mixing this project, please ensure proper attribution and adherence to the terms of the respective licenses.

Contributing

Please see the Contributing Guidelines for proper procedures to contribute to our project.