Skip to content

Commit ccc67c7

Browse files
Nathaniel WatermanNathaniel Waterman
Nathaniel Waterman
authored and
Nathaniel Waterman
committed
Initial commit - uploading my Science Fair Project
0 parents  commit ccc67c7

File tree

88 files changed

+9233
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+9233
-0
lines changed

2legOAuthGenerator.php

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<html>
2+
<head>
3+
<title>PHP Nonce and Timestamp generator</title>
4+
</head>
5+
<body>
6+
<?php
7+
echo 'authorization: OAuth realm="Schoology API", oauth_consumer_key="5467f791b6951746aec7d75bd2db99a505a6c8a3c", oauth_token="", oauth_nonce="';
8+
echo uniqid();
9+
echo '", oauth_timestamp="';
10+
echo time();
11+
echo '", oauth_signature_method="PLAINTEXT", oauth_version="1.0", oauth_signature="7919313657d4e63ad4899db2185ddbfc%26"';
12+
?>
13+
</body>
14+
</html>

API Stuff.txt

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Current Consumer Key:
2+
5467f791b6951746aec7d75bd2db99a505a6c8a3c
3+
4+
Current Consumer Secret:
5+
7919313657d4e63ad4899db2185ddbfc

Choose Assignment.png

5.7 MB
Loading

Contents

984 Bytes
Binary file not shown.

Enter Login Information.png

280 KB
Loading

Getassgns AppleScript Wrapper.scpt

10.5 KB
Binary file not shown.

Getassgns Flowchart, Vertical.emf

313 KB
Binary file not shown.

Getassgns Flowchart, Vertical.pdf

135 KB
Binary file not shown.

Getassgns Flowchart, Vertical.png

112 KB
Loading

Getassgns Flowchart, Vertical.svg

+2
Loading

Getassgns Flowchart, Vertical.xml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0" version="8.7.6" editor="www.draw.io" type="device"><diagram id="3d72caea-a586-9b93-a766-95d7b98a710c" name="Page-1">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</diagram></mxfile>

Getassgns Flowchart.pdf

334 KB
Binary file not shown.

Getassgns Flowchart.xml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:58.0) Gecko/20100101 Firefox/58.0" version="8.3.1" editor="www.draw.io" type="device"><diagram id="3d72caea-a586-9b93-a766-95d7b98a710c" name="Page-1">5V1rb9u4Ev01Bu5dIIHetj/mvQF2t0Gd3u5+KhSLttVKokpJSby//pIU9STlyA4l0+kCm9gMJVGcOTOHM0N2Yl6Fr3fIjTd/Qg8EE0PzXifm9cQwdGdm4F+kZZu3zHUnb1gj32OdqoaF/y9gjRprzXwPJI2OKYRB6sfNxiWMIrBMG20uQvCl2W0Fg+ZTY3cNuIbF0g341q++l25Yq65p1R9+B/56wx49s9kfntzljzWCWcSeNzHMFf0v/3PoFvdi/ZON68GXWpN5MzGvEIRp/il8vQIBmdti2vLrbjv+Wo4bgSjtc4ExZ+NIt8W7Aw9PBfsKUbqBaxi5wU3VeknfD5A7aPjbJg0D/FHHH8Grn/5d+/wP6XJus28PAPkhSAFiF+Ihou3f9S+1/uRr+4LvIE23TFncLIW4qRrgHxDG7NH8JLB5SWCGloWImUamLloD1m1q5W1kCmoXsqm7AxCPBm1xBwQCN/Wfm9riMqVbl/3KSx+gj4diaAwgpfgZPGZa8w75mNhFlfTwh9ooqiYq0w6FYG/57AYZG+0C3z3lpJ6kCP4old1oyhVraUz6ha9rgvfzVQBflht8m/OE3Owb6fOy8VOwiF06vy+4G6copa6TL+vATRL2eQlDf8k+d8ruGaAUvO6UCvur1ZzcApovNSAXON7UMOxo3WJsSGDHdJsWN90y8dUXABWyzrW53RNd+4G3F8YMEcam42BsbtkjYcy0OaH/g51XW+5Ye9OmOBFI/H/dJ9qBzGlMBkOHZ19O7Gvc4gb+OsINSzzLZOovCQp87Kcu2B9C3/OozgTuEwguS+9zBQOI6HML/yMSWamubWyVnpWNruGdRJjTzvXmdLPbHCrEogtcrRLwbgFNVUNlE5NdiDwYY+Z8HIxZdtPUlvxtAJDNOBn+BU8CY4XyvRtjZxXIlICVwXOLe2z2tO8/8Y/7CFODICB4uZVFNjyw9BMfRoqxjSYGzJ50o2x8F9/QuLn9Reh7QdXrZq9QyKHNnvkGfc/HKcXqGQLP5QTUxuFhO2vy6bc7PLF+tMb9PsUpxkdS9HlCRZ+iBT+wurBojIuGxw0gM48gRl5IXmi5BHGa0BV0hu+lQXZ/86J2w7h9vyxoqKTzMyPL2cvAj8BZAQF8A80gELCrDu37BH675aloOFvXBvBUddP+c/fl/r/49+PGTxrvQr8+gXyeUBaRl0KQviX+H19FPuFlO1mTwywgHyKY0mvI1cQ3uEuiNOe1J/Mj3DVm1DVmBEL4DMiwr0GAEUP0mori00WGjQj2FAh4GA2+m88sRCR+gV/AD0CCx6P9BdlFbkp/0Zf1IGGh7C38MA6I6p9V4xdqx35vBLreCHh+St7nqhw4GcqniI6BxItyDbjBdoXM+4pYCUMLoeevtkyVRa9OX3hiYNxoWQJWVNH8VfXK9IdLIbSFGbXCCbkJNjZkPvacKnS4qOm9023H9Cxi7MlWPn0m9mRLOkSAQj+ib0lHG6Pc5tQ0jwAwS+OM3hzuK0fcSOaraHyTOeVOuiA5EYyI78ACCFpNCfbCRGTmtV19e6TW/MzQOnw1VndEHDtu2WB6BaLx/Tcz3o7FO+wynFd32By5PcRhW8oFCCQuRYplR90nWyP55PZSxJwPthSx+PX+aSxFLGnLfbwUMabNBb+l0MrE4heLx0VZT4Z8MMpsfRyU2bPWgr8dNJWIsjknwxOJqpXaJwVmjfk+MxRCmclLiK7/7xuMhZI9Qv1+tUBAyRdGiQRYfDCGkeuvPuXRV7kcLFkyYHw1JYBQWAolDxgj/WPzzOC4fkcmuyt8TMPvjJTMcUy7JVV7KL9j80A6DXZXKp9UdqeEp3F0TibHxZVMPifClWOPg6vpdDQ+5/ChzBPhc06XEzokS9qcboUwZvMYu86jYl8SgPhY00UcI0gZ3qfVpMz35LG77z8/OtnjFkKazdMMXUT2ZESRbD6hLSR7tiwZKEr27FmbFoxI9qYzmT5ov9zbfqm0lhd50yPl3ke6s5nNxqrIcXgezuxTbpwkoQIbwCUguq0QJKZOc5LHXYVO+fD2feST5A3RVUP7n4t84iyJW8GOxA3JROU/eQ9zR3xakdL87SMLrV0POmoNwUwRcs0MoHY+1+xeRvBAOr6vNSwKFuv8PK9vl24hdX20wuCpqCYuR6DnP5NHMu5cpecRVTxRtj5HcPSU5EDWPgPXm5Qp3B1ZSvqovLWRKW5fcptn6q/vkx/SaKWbukoZgfkR65ZnJ52W3BfRxe6UBqKnAyG6vcIerkRydkp5yd6L6aY0c0XdWSJptNYEE3XW2LqmWiXyoJ5ThDNdmw0DNFMby3XqOs+YFA5lHYg0pqu7YlnzAlwKhrMK3WuEsyakLhAmQEAw8sIyUpCWpOMFrzolxCGrUw4cZxx18aDrpmIWbVDmwKxXy6Tpw8RLdNscjTvoOs8AP6BNy7V1F32w1CUP+i9FHsRQ60qwvBdqjjMeezilnUwHA203ecBAa2X0z1TaMFjqXqu0qc0auqvbxy14kkEjrNkxY5B8KdkHZhEzQURxPlL8YcC66OLOH5pC5Jq607AZ6hZGz5Vj6/3PJ5CItQ4Zyg5BDFhNM+fp+ocjEfPdZJ0P9SnFIWY8W1ejOloGWWjHHMbNMpc3Ubn0ootL6HLt23xE+1Z6+BHsG4+eB7YhkmzXfUAwjKUdYuT5SRy42zFjdGMWKun6IId8VRApKfLolUpDabpljhUOmItWPrvz8Mwz75+Ib+3GzpPqXdn5Wmo+ST2f7Je/INvj2/0X7jPzYIZ27ZP8fL98f1erJEh3Z/dl4JljeoYAz5YAz21FOgzPfKKXlX8usiUpblplQbCVNZVv1n7KmNB29KF3+EGKgTRU2y96TiZryOBqoa/N4OpA1nRmjWVNy/eqSTIvI7yPVhCFLqklJJbsCdJTFBZ4DZIfmMKsobZYbiBeyKzJe1883MsC0e6qQxkIakewx00DOvy8HwVBQipv2CODyxaAyxlmB091fsV+4LpAyN3WurFAwHvhx3umzyAGbm1rwo1LjzthyCPIvOZB9uKHgUtPF5EADUPT34SGLXLWhhRoKHf6oETlL+TdUH/TFKi/OUzZT7tymrNmEn2LyQdPd/mWiyTBzD0EFFa4z6Q8lKrUfXV8i9FRwvC+I3Xl+BaT38YkY/m6y0X0hIjMxa0QSkJPYnbERfeDUrcD6ECaUAVu+/UuFKESef74g7FoKcI3xjOqomoIa6CzlLTxjKplcIL8cIkMpq27MhlWcRC/ige96IqfWtYZUheHKgsvMCw25Vhp3rC29xOYA2LzpA42Pxicu7cUUG6gEBYFB2F/dRNKLgESVDZfEOJ5gxCZNbVSjG9wzg7GMRLpLM5TOurJyvqkwSooSR2cc1qC80g6ZTUs57T1nTTyzf62bNbJL+UJWdH+hCLk3V9/PFvp7IQs2X5lms1NIWdK1VAXyl2XIBGJOAx11ITJG+bRbCXjpz3No5SEiananvHpbD/Lqgksax+LKbCXBXMfwF4KltX6WGdolO8lyExXNu7mNSXFTIK0cC2+y5vBA5EF8qd9g+hbCNwkQyCkohksqdLOXAk4SHESnXSMOYrUasrCmOwsiyPiKU4HmX8v7mbj4U542F1v3FVRZwEhiVZ8aOVEoMjluUTLAWMof+fwh0IeBYtjQUvwj6uwjQTyoTVvEZkhoXVSZ0ofStKd3SRdO9daZdNKMXRHtVqcnlCTH2vsDcwOeb/3XznSuorcDi4t6HKujvhB0tbtU55Kfbwkg9ORYS9hb2tzlTZIlMr8EXdIYMJ4zHKswocqY0SHPZWhiH00zeIwSwGzvaNyQL4y5cVY7IL4PQtdsrq+RT6IPLrx+JHaB1kQGXpPBMf7xjzvTBccVHniJdSm3iqh1vvuyZpKmVDVaNugu64Y5zqSxelLxA4yOfxK9zNIM0Qr22qxBe3RTzvOcdWuIMLMKYaRlx8H/uXzHwtZUBq8kJqzS3rfyPohrht/RZDs4qnkRV6YkB7S4/8=</diagram></mxfile>

HFetch DEMO.app/Contents/Info.plist

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>CFBundleAllowMixedLocalizations</key>
6+
<true/>
7+
<key>CFBundleDevelopmentRegion</key>
8+
<string>English</string>
9+
<key>CFBundleExecutable</key>
10+
<string>applet</string>
11+
<key>CFBundleIconFile</key>
12+
<string>applet</string>
13+
<key>CFBundleIdentifier</key>
14+
<string>com.apple.ScriptEditor.id.HFetch-copy</string>
15+
<key>CFBundleInfoDictionaryVersion</key>
16+
<string>6.0</string>
17+
<key>CFBundleName</key>
18+
<string>HFetch copy</string>
19+
<key>CFBundlePackageType</key>
20+
<string>APPL</string>
21+
<key>CFBundleShortVersionString</key>
22+
<string>1.0</string>
23+
<key>CFBundleSignature</key>
24+
<string>aplt</string>
25+
<key>LSMinimumSystemVersionByArchitecture</key>
26+
<dict>
27+
<key>x86_64</key>
28+
<string>10.6</string>
29+
</dict>
30+
<key>LSRequiresCarbon</key>
31+
<true/>
32+
<key>WindowState</key>
33+
<dict>
34+
<key>bundleDividerCollapsed</key>
35+
<false/>
36+
<key>bundlePositionOfDivider</key>
37+
<real>738</real>
38+
<key>dividerCollapsed</key>
39+
<false/>
40+
<key>eventLogLevel</key>
41+
<integer>1</integer>
42+
<key>name</key>
43+
<string>ScriptWindowState</string>
44+
<key>positionOfDivider</key>
45+
<real>546</real>
46+
<key>savedFrame</key>
47+
<string>0 33 1037 845 0 0 1440 878 </string>
48+
<key>selectedTab</key>
49+
<string>log</string>
50+
</dict>
51+
</dict>
52+
</plist>

HFetch DEMO.app/Contents/MacOS/applet

24.4 KB
Binary file not shown.

HFetch DEMO.app/Contents/PkgInfo

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
APPLaplt
Binary file not shown.
221 KB
Binary file not shown.
362 Bytes
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
2+
{\fonttbl}
3+
{\colortbl;\red255\green255\blue255;}
4+
{\*\expandedcolortbl;;}
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
#!/bin/bash
2+
3+
interactive=1
4+
justDoCredentials=0
5+
tty=$(tty) # tty to direct interactive output to
6+
7+
while getopts "gret:" opt; do
8+
case "$opt" in
9+
g) # GUI mode - non-interactive
10+
interactive=0
11+
tty="/dev/null"
12+
;;
13+
r) # Delete the API credential files
14+
rm "$HOME/.scgyKey"
15+
rm "$HOME/.scgySecret"
16+
;;
17+
e) # Exit after modifying credentials
18+
justDoCredentials=1
19+
;;
20+
t) # Specify tty for interactive output
21+
tty="$OPTARG"
22+
;;
23+
*) # Invalid option
24+
echo "usage: $0 [-gre] [-t tty]"
25+
;;
26+
esac
27+
done
28+
29+
30+
31+
PATH=$PATH":/usr/local/bin/" # Make sure we can find jq if it is installed
32+
jq --help > /dev/null 2> /dev/null || { # Test if we can find jq
33+
echo "Coulndn't find jq." > /dev/stderr
34+
if [ $interactive -eq 1 ]; then
35+
echo "Install it?"
36+
echo -n "(yes or no?) "
37+
read -n 1 answer
38+
read
39+
40+
if [ "$answer" != "y" ]; then # If the user does not type something beginning with y
41+
exit 5
42+
fi
43+
brew install jq || \
44+
pkg install jq || \
45+
sudo bash -c '
46+
apt-get install jq ||
47+
dnf install jq ||
48+
zypper install jq ||
49+
pacman -Sy jq' # Try every possible way to install jq
50+
else
51+
exit 4 # 4 - The GUI needs to install jq
52+
fi
53+
}
54+
55+
# Try to read the credentials. If they are missing, prompt the user. If the user doesn't respond (or we're in GUI mode), exit with an error
56+
57+
read consumerKey < "$HOME/.scgyKey" || \
58+
{ echo -n "Consumer Key: " > "$tty"; read -t 5 && echo "$REPLY" > "$HOME/.scgyKey" || exit 2; } # 2 - Missing Consumer Key
59+
60+
read consumerSecret < "$HOME/.scgySecret" || \
61+
{ echo -n "Consumer Secret: " > "$tty"; read -t 5 && echo "$REPLY" > "$HOME/.scgySecret" || exit 3; } # 3 - Missing Consumer Secret
62+
63+
[ $justDoCredentials -eq 1 ] && exit # Stop if option -e (exit after modifying credentials) was specified
64+
65+
IDs=( $(
66+
curl https://api.schoology.com/v1/users/25493325/sections \
67+
-sH "$(php -r "echo 'authorization: OAuth realm=\"Schoology API\", oauth_consumer_key=\"$consumerKey\", oauth_token=\"\", oauth_nonce=\"'; echo uniqid(); echo '\", oauth_timestamp=\"'; echo time(); echo '\", oauth_signature_method=\"PLAINTEXT\", oauth_version=\"1.0\", oauth_signature=\"$consumerSecret%26\"'; ")"\
68+
| jq -r .section[].id
69+
) ) # Obtain the IDs of the user's classes
70+
71+
length=${#IDs[@]} # Find how many classes the user has
72+
73+
[ $interactive -eq 1 ] && tput sc > "$tty" # If we're in interactive mode, save the current cursor position so we can return here in order to overwrite the previous progress percentage
74+
75+
result=$(
76+
77+
for i in "${!IDs[@]}"; do
78+
79+
[ $interactive -eq 1 ] && tput rc > "$tty"
80+
echo -n $((i * 100 / length))"%" > "$tty" # Display progress percentage
81+
82+
# Get each class' assignments
83+
until curl https://api.schoology.com/v1/sections/"${IDs[$i]}"/assignments \
84+
-sfH "$(php -r "echo 'authorization: OAuth realm=\"Schoology API\", oauth_consumer_key=\"$consumerKey\", oauth_token=\"\", oauth_nonce=\"'; echo uniqid(); echo '\", oauth_timestamp=\"'; echo time(); echo '\", oauth_signature_method=\"PLAINTEXT\", oauth_version=\"1.0\", oauth_signature=\"$consumerSecret%26\"'; ")"
85+
do
86+
sleep 0.1
87+
done
88+
89+
done
90+
91+
)
92+
93+
if [ $interactive -eq 1 ]; then
94+
95+
tput rc > "$tty"
96+
97+
{
98+
echo "Name\`Due Date"
99+
100+
# Parse the json returned by the server for the due date and name, keeping only ones that are due in the future
101+
echo "$result" | jq -r '.assignment[] |
102+
select(
103+
(.due | strptime("%Y-%m-%d %H:%M:%S") | mktime)? > ($date | strptime("%Y-%m-%d %H:%M:%S") | mktime)
104+
)
105+
|
106+
"\(.title):`\(.due)"' --arg date "$(date +"%C%y-%m-$(($(date +%d))) %H:%M:%S")"
107+
} | column -ts "\`" > "$tty"
108+
109+
else
110+
111+
# Parse the json returned by the server for the due date and name, keeping only ones that are due in the future
112+
result=$(
113+
echo "$result" | jq -r '.assignment[] |
114+
select(
115+
(.due | strptime("%Y-%m-%d %H:%M:%S") | mktime)? > ($date | strptime("%Y-%m-%d %H:%M:%S") | mktime)
116+
)
117+
|
118+
"Due \(.due):: \"\(.title)\": due \(.due), URL \(.web_url)"' --arg date "$(date +"%C%y-%m-$(($(date +%d))) %H:%M:%S")" | sort
119+
# --arg date "2000-01-01 00:00:00
120+
)
121+
122+
# Sort the assignments by due date
123+
tempIFS="$IFS"
124+
IFS='
125+
'
126+
127+
for line in $result; do
128+
echo "${line#*:: *}"
129+
done
130+
131+
IFS="$tempIFS"
132+
133+
fi

HFetch Essay Brainstorming.pages

584 KB
Binary file not shown.

HFetch Report/.DS_Store

10 KB
Binary file not shown.

HFetch Report/bibliography.bib

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
%% This BibTeX bibliography file was created using BibDesk.
2+
%% http://bibdesk.sourceforge.net/
3+
4+
%% Created for Nathaniel Waterman at 2018-03-10 13:56:15 -0500
5+
6+
7+
%% Saved with string encoding Unicode (UTF-8)
8+
9+
10+
11+
@webpage{automator,
12+
Date-Added = {2018-03-10 18:56:00 +0000},
13+
Date-Modified = {2018-03-10 18:56:10 +0000},
14+
Read = {1},
15+
Title = {Welcome to Automator},
16+
Url = {https://support.apple.com/guide/automator/welcome/mac}}
17+
18+
@webpage{cron,
19+
Date-Added = {2018-03-10 18:41:44 +0000},
20+
Date-Modified = {2018-03-10 18:41:52 +0000},
21+
Read = {1},
22+
Title = {What are cron and crontab, and how do I use them?},
23+
Url = {https://kb.iu.edu/d/afiz},
24+
Bdsk-Url-1 = {https://kb.iu.edu/d/afiz}}
25+
26+
@webpage{jq,
27+
Date-Added = {2018-03-10 18:21:12 +0000},
28+
Date-Modified = {2018-03-10 18:21:41 +0000},
29+
Read = {1},
30+
Title = {jq},
31+
Url = {https://stedolan.github.io/jq/},
32+
Bdsk-Url-1 = {https://stedolan.github.io/jq/}}
33+
34+
@webpage{rest,
35+
Date-Added = {2018-03-08 16:16:07 +0000},
36+
Date-Modified = {2018-03-08 16:16:39 +0000},
37+
Read = {1},
38+
Title = {Relationship to the World Wide Web and REST Architectures},
39+
Url = {https://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#relwwwrest},
40+
Bdsk-Url-1 = {https://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#relwwwrest}}
41+
42+
@webpage{getassgns,
43+
Date-Added = {2018-03-08 15:42:47 +0000},
44+
Date-Modified = {2018-03-08 15:43:21 +0000},
45+
Read = {1},
46+
Title = {c47s/getassgns},
47+
Url = {https://github.com/c47s/getassgns/},
48+
Bdsk-Url-1 = {https://github.com/c47s/getassgns/}}
49+
50+
@webpage{scgy-promo,
51+
Date-Added = {2018-03-08 15:32:57 +0000},
52+
Date-Modified = {2018-03-08 15:34:19 +0000},
53+
Read = {1},
54+
Title = {Schoology},
55+
Url = {https://www.schoology.com/},
56+
Bdsk-Url-1 = {https://www.schoology.com/}}
57+
58+
@webpage{api-docs,
59+
Date-Added = {2018-03-03 18:30:49 +0000},
60+
Date-Modified = {2018-03-03 18:31:19 +0000},
61+
Read = {1},
62+
Title = {Schoology API Documentation},
63+
Url = {https://developers.schoology.com/api-documentation/design-architecture},
64+
Bdsk-Url-1 = {https://developers.schoology.com/api-documentation/design-architecture}}

HFetch Report/chapters/.DS_Store

6 KB
Binary file not shown.
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
These programs make homework easier to remember,
2+
and allow for automation, such as with the cron utility\cite{cron} or Automator\cite{automator} on MacOS.
3+
With cron, for instance, the app's executable could be scheduled to run at certain times and remind the student of their upcoming assignments.
4+
Furthermore, with Automator, HFetch could be run with a keystroke or as a dictation command (by speaking).
5+
6+
In the future, a user interface should be created for Linux as the current one is written in AppleScript,
7+
new versions of this program should be created for Windows and iOS,
8+
and a similar client for the Powerschool API should be created or added as a part of HFetch.

0 commit comments

Comments
 (0)