To be able to edit code and run cells, you need to run the notebook yourself. Where would you like to run the notebook?

In the cloud (experimental)

Binder is a free, open source service that runs scientific notebooks in the cloud! It will take a while, usually 2-7 minutes to get a session.

On your computer

(Recommended if you want to store your changes.)

  1. Download the notebook:
  2. Run Pluto

    (Also see: How to install Julia and Pluto)

  3. Open the notebook file

    Type the saved filename in the open box.

Frontmatter

If you are publishing this notebook on the web, you can set the parameters below to provide HTML metadata. This is useful for search engines and social media.

Preview

Author 1

Student overview - Fall 2023 🚀

@mdx """
# **Student overview - Fall 2023 🚀**
"""
206 ms

1) Student Tutor Matching 📆

A top-level overview of all of the common times between tutors and selected students based on their live whenisgood schedules. Most things will run directly on this site. To have full access to the interactive controls, it's recommened to run this notebook on your local computer. To do this, first download the external Onaketa.jl package.

Note

To download the unregistered Julia package, Onaketa.jl, first install Julia and then paste this into the package REPL:

	pkg> add https://github.com/icweaver/Onaketa.jl

This assumes that you have Pluto.jl (Julia's take on Jupyter notebooks) installed into your global environment.

begin
title_section1 = "Student Tutor Matching 📆"
md"""
## 1) $(title_section1)

A top-level overview of all of the common times between tutors and selected students based on their live [whenisgood](https://whenisgood.net/) schedules. Most things will run directly on this site. To have full access to the interactive controls, it's recommened to run this notebook on your local computer. To do this, first download the external [`Onaketa.jl`](https://github.com/icweaver/Onaketa.jl) package.

!!! note
To download the [unregistered Julia package](https://pkgdocs.julialang.org/v1/managing-packages/#Adding-unregistered-packages), `Onaketa.jl`, first [install Julia](https://julialang.org/downloads/) and then paste this into the [package REPL](https://docs.julialang.org/en/v1/stdlib/Pkg/):

```julia
pkg> add https://github.com/icweaver/Onaketa.jl
70.1 ms

Visualization

If viewing online:

  • The brighter the cell, the more times in common there are for that pair.

  • Hover over each cell to see a list of the corresponding times.

  • Click on the cell to copy the times to your system clipboard (to paste into an email for example).

Additionally, if running locally:

  • Use the controls below to filter for different tutor-student pairs. This might become an online feature one day™.

  • Ctrl-click to select multiple tutors/students.

  • Click Reset to return to the default view of all tutor-student combinations.

md"""
### Visualization

If viewing online:
* The brighter the cell, the more times in common there are for that pair.
* Hover over each cell to see a list of the corresponding times.
* Click on the cell to copy the times to your system clipboard (to paste into an email for example).

Additionally, if running locally:
* Use the controls below to filter for different tutor-student pairs. This might become an online feature [one day™](https://github.com/JuliaPluto/PlutoSliderServer.jl/pull/29).
* Ctrl-click to select multiple tutors/students.
* Click `Reset` to return to the default view of all tutor-student combinations.
"""
16.8 ms

Tip

If the tooltip is empty but the plot shows that there should be multiple matches, there may just be too many to display at your current zoom level! Try zooming out, or just pasting the data that is automatially copied to your clipboard on click.

md"""
!!! tip
If the tooltip is empty but the plot shows that there should be multiple matches, there may just be too many to display at your current zoom level! Try zooming out, or just pasting the data that is automatially copied to your clipboard on click.
"""
20.0 ms
634 μs
@bind reset_matrix Button("Reset")
718 μs

begin
@mdx """
$(@bind tutor_names_selected MultiSelect(tutor_names; default=tutor_names))
$(@bind student_names_selected MultiSelect(student_names; default=student_names))
"""
end
1.7 ms

Download schedules

md"""
### Download schedules
"""
171 μs
@bind URL confirm(TextField(50;default="https://whenisgood.net/2xfibm8/onaketa2023/results/qjn7dng"))
568 μs
user_info = URL |> download_schedules |> extract_times;
285 ms

Find matches

md"""
### Find matches
"""
199 μs
student_names
student_names = [
"Alice",
"Bob",
"Charlie",
"Dee",
]
17.0 μs
tutor_names
tutor_names = [
"Ian",
"Reza",
"Greg",
"Haley"
]
17.3 μs
# Number of matches and corresponding tooltip data
N_common_matrix, dt_common_matrix = get_matches(user_info;
);
1.8 ms

md"""
---
"""
147 μs

Notebook setup 🔧

md"""
## Notebook setup 🔧
"""
181 μs
TableOfContents()
1.5 μs
begin
import Pkg
Pkg.activate(Base.current_project())
using Revise
end
❔
  Activating project at `~/projects/Onaketa.jl`
62.6 ms
using Onaketa, PlutoUI
165 μs