This application visualizes student availability during breaks between classes using interactive heatmaps. It helps identify periods when students are free, enabling organizations to optimize event timing and boost involvement. The tool features a variety of filtering options to target specific groups, such as departments or degree programs, allowing for tailored event planning for different groups of students.
- Interactive Heatmap Visualization: Displays student availability dynamically across various times and days.
- Customizable Filters: Filter data by semester term, day of the week, class level, major, concentration, department, and more.
- Flexible Time Increments: Adjust the maximum gap and time increment settings to suit specific analysis needs.
- Color Palette: Utilizes the 'viridis' color palette for clear, accessible data representation.
- Filtering Online and Invalid Classes: Excludes entries with invalid times or day formats to focus on in-person classes.
- Time Conversion: Transforms integer times (e.g., 0900) into time objects for precise calculations.
- Standardizing Days: Expands and renames day codes (MTWRF) into readable formats (Mon, Tues).
- Calculating and Filtering Gaps:Computes class gaps and filters out negative or zero values to analyze only meaningful gaps.
- Term-Based Segmentation: Segments data by academic terms while accounting for full-term classes.
- Time Interval Alignment: Maps student availability gaps to every second of the day, creating highly detailed intervals for precise visualization of free time patterns.
global.R
: Contains global variables and functions that are shared across the UI and server components.server.R
: Defines the server-side logic of the application, including data processing and reactive expressions.ui.R
: Describes the user interface of the application, including layout, input controls, and visual output elements.
- Download and Install R: Here
- Required Packages:
install.packages(c("tidyverse", "hms", "lubridate", "viridis", "shiny", "plotly"))
- Data File: Create and properly format the student_data.csv
- Clone the repository:
git clone https://github.com/nragland37/student-time-analysis.git cd student-time-analysis
- Launch the application:
Alternatively, run directly from the command line:
runApp()
Rscript -e 'shiny::runApp()'
Important
To protect privacy, the original CSV file is not included. Create your own student_data.csv
and place it in the same directory as global.R
with the following format:
id, sess, yr, cl, major1_majortext, major1_conctext, crs_dept, days, beg_tm, end_tm, beg_date, end_date
123456, FA, 2023, SO, Business Administration, Finance, BUSN, --M-W-F-, 0900, 0950, 2023-01-16, 2023-05-12
234567, SP, 2023, JR, Computer Science, Cybersecurity, COSC, --T-R--, 1000, 1120, 2023-01-16, 2023-05-12
345678, SU, 2023, SR, Psychology, None assigned, PSYC, --M-W---, 1300, 1420, 2023-06-01, 2023-07-15