Skip to content
This repository has been archived by the owner on Feb 17, 2021. It is now read-only.

Pull in latest changes from upstream #1

Merged
merged 106 commits into from
Oct 3, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
2099848
Fix bulleted list formatting and clarify license
psvenk Mar 28, 2019
cc9c6ff
Fix spelling and further clarify license
psvenk Mar 29, 2019
e8228b5
Added hosting instructions
psvenk Mar 29, 2019
9c22fc0
Merge pull request #37 from psvenk/add-hosting-instructions
maxtkc Mar 30, 2019
f355b10
Merge pull request #36 from psvenk/patch-1
maxtkc Mar 30, 2019
478692d
Update hosting instructions
psvenk Apr 2, 2019
ca8f7b5
less sassy README. Add FAQ section with answers to credentials handli…
Ruborcalor Apr 2, 2019
1953e30
prevent page from scrolling on table loading
Ruborcalor Apr 4, 2019
4b80959
add assignment filtering via the category table
Ruborcalor Apr 4, 2019
25c6d28
navigate to grades page when click event on recentActivity table
Ruborcalor Apr 4, 2019
56b591d
correct dumb rounding issue in stats array generation
Ruborcalor Apr 4, 2019
d04004b
Continued improvements to the stats plot data
Ruborcalor Apr 4, 2019
6e2403b
adding mean line to plotly graph
Ruborcalor Apr 4, 2019
433aea9
correct path to image in README.md
Ruborcalor Apr 4, 2019
810b86b
add annotations to box plot that identify 'Mean' and 'Your Score'
Ruborcalor Apr 4, 2019
98792c2
Coloring of lines based on their respective grades
Ruborcalor Apr 4, 2019
706316d
better box plot color
Ruborcalor Apr 4, 2019
cf6b409
better positioning of annotations so that they don't get cut off
Ruborcalor Apr 4, 2019
06b6837
slight offset of vertical lines to prevent them from being cut off wh…
Ruborcalor Apr 4, 2019
8a44358
made test open redis-server if it's not already open (convenience)
maxtkc Apr 4, 2019
6b82f7e
blue highlight on select category
maxtkc Apr 4, 2019
ce0f65e
simulated click on tab for clicking on recent activity assignment
maxtkc Apr 4, 2019
0b6a0d2
automatically select class when moving from 'Recent Activity' to 'Gra…
Ruborcalor Apr 5, 2019
88a92d6
pink boxplot for readability
Ruborcalor Apr 5, 2019
68519cd
bug
Ruborcalor Apr 5, 2019
02d77d6
bug begone
Ruborcalor Apr 5, 2019
62afb2e
finally responsive sizing plotly chart
Ruborcalor Apr 5, 2019
8f43441
plotly font and color styling
Ruborcalor Apr 5, 2019
3327369
save progress
Ruborcalor Apr 7, 2019
b4a17c0
initial changes
Ruborcalor Apr 7, 2019
26371f0
Determine whether for credentials are valid at submit login
Ruborcalor Apr 7, 2019
80836f6
only log out if incorrect login credentials, not if there are no classes
Ruborcalor Apr 7, 2019
e1348df
implemented response for a user with no classes
Ruborcalor Apr 7, 2019
e97f0f6
fixed bug
Ruborcalor Apr 8, 2019
8261ba8
prevent infinite decimals in category weights
Ruborcalor Apr 8, 2019
7692c23
added lines for grade indication to boxplot
Ruborcalor Apr 8, 2019
105b457
better sizing
Ruborcalor Apr 8, 2019
2b83de7
add 'Grade Lettering and Coloring' table to README.md
Ruborcalor Apr 8, 2019
899b26a
Added grade scale to plotly
Ruborcalor Apr 8, 2019
f816efd
only resize plotly if it is visible. Fix tabulator updating bug
Ruborcalor Apr 8, 2019
ab09527
change header info circle pointer to default because it has no click …
Ruborcalor Apr 8, 2019
89ea68f
improved plotly horizontal sizing
Ruborcalor Apr 8, 2019
c7de29b
vip_username_list upgrade
Ruborcalor Apr 9, 2019
8c0c302
Merge pull request #39 from psvenk/patch-1
maxtkc Apr 9, 2019
82bab03
Merge pull request #43 from maxtkc/tabulator_improvements
maxtkc Apr 9, 2019
ff13b20
gitnore rdb
maxtkc Apr 9, 2019
499c5b0
small tabulator moves
Ruborcalor Apr 9, 2019
28071d7
secret commit
Ruborcalor Apr 9, 2019
cce5b0d
testing aspen server download
Ruborcalor Apr 9, 2019
13c72a4
attempting to mimick wget
Ruborcalor Apr 9, 2019
512d379
save attempt at lots of different requests but realized it was the wr…
Ruborcalor Apr 11, 2019
9322b29
big progress
Ruborcalor Apr 11, 2019
ecce526
bingo
Ruborcalor Apr 11, 2019
e20ea7d
dumb bingo pt 2
Ruborcalor Apr 13, 2019
3b71966
adapting scrape.js to scrape_pdf
Ruborcalor Apr 13, 2019
14e8e3d
improved scrapping and logging system to better accommodate a larger …
Ruborcalor Apr 13, 2019
d65abe9
working out scrape_pdf details
Ruborcalor Apr 13, 2019
04c4ca7
web scraped all the necessary parameters
Ruborcalor Apr 13, 2019
86e6f93
got pdf loading into canvas going on Reports page
Ruborcalor Apr 13, 2019
7ad2c56
a beautiful transcript loaded into reports page
Ruborcalor Apr 13, 2019
e728d66
improved sizing
Ruborcalor Apr 13, 2019
3df0f36
resize pdf on browser resize, clean up code
Ruborcalor Apr 13, 2019
fc42e0f
added scroll bars but gotta go
Ruborcalor Apr 13, 2019
a5ba5f7
good progress
Ruborcalor Apr 13, 2019
7869557
continuing to style pdf
Ruborcalor Apr 13, 2019
aa7a98a
very pretty dropdown
Ruborcalor Apr 13, 2019
e2c7054
styling complete, now for full functionality
Ruborcalor Apr 13, 2019
d6d7955
extract pretty filename from fetch_pdf() and clean up scrape.js
Ruborcalor Apr 13, 2019
22702c6
adding fullscreen capabilities
Ruborcalor Apr 14, 2019
223503d
fullscreen almost complete
Ruborcalor Apr 14, 2019
fdddebb
almost ready to go live. Just need to make adjustments for mobile use…
Ruborcalor Apr 14, 2019
cd21833
handling exceptions within intialize_dropdown
Ruborcalor Apr 14, 2019
3f84ffb
change vip_username_list
Ruborcalor Apr 15, 2019
923a622
dumb conflicts
maxtkc Apr 16, 2019
4dba53a
Merge branch 'master' into pdf_viewer
Ruborcalor Apr 16, 2019
9ebf1d4
make 'mean' annotation more readable
Ruborcalor Apr 22, 2019
8fda960
getting ready to fix bugs
Ruborcalor Apr 23, 2019
02e20a5
remove consolelogs
Ruborcalor Apr 23, 2019
e32292d
fix pdf bug and add loading indicator to 'Reports' page
Ruborcalor Apr 23, 2019
dec8ebf
improve assignment scraper to capture 'date_assigned', 'date_due', an…
Ruborcalor Apr 23, 2019
baabb3c
progress on restyling stats modal
Ruborcalor Apr 23, 2019
0245816
finalized changes to info modal
Ruborcalor Apr 23, 2019
9c3101a
save
Ruborcalor Apr 23, 2019
fe04b02
new format correctly shows and hides
Ruborcalor Apr 23, 2019
95e42a4
separate into 'Graph:', 'Stats:', and 'Info:'
Ruborcalor Apr 23, 2019
b016f2d
looking hot
Ruborcalor Apr 23, 2019
af43bf8
finished changes, but now thought of a better approach to incorporate…
Ruborcalor Apr 24, 2019
1a9e45c
analytics
Ruborcalor Apr 24, 2019
c72c8c0
save
Ruborcalor Apr 26, 2019
8cb135a
correcting exception to scrape_schedule
Ruborcalor Apr 29, 2019
cf4af4a
improve 'getLightColor()' with psvenk's recommended color palette
Ruborcalor Apr 29, 2019
701d715
change mean line to using 'getLightColor()' instead of 'getColor()'
Ruborcalor Apr 29, 2019
3f369c5
undelete functions
Ruborcalor Apr 29, 2019
7661580
everything working like new/better
Ruborcalor Apr 29, 2019
fbd457b
update README
Ruborcalor Apr 29, 2019
ffbf1db
added most_recent_table
Ruborcalor May 3, 2019
b23b922
most recent table mostly done
Ruborcalor May 3, 2019
31d56ea
added sorting and class coloring
Ruborcalor May 3, 2019
19bd479
change from 'splice' to 'slice' so that elements aren't removed from …
Ruborcalor May 14, 2019
45af915
fixing src of pdfjsLib, but pdf still doesn't render
Ruborcalor Sep 7, 2019
92f5778
fix pdf.js viewer by updating cdn link
Ruborcalor Sep 21, 2019
6b8ff8d
big improvements in fixing bugs
Ruborcalor Sep 21, 2019
e63993f
temporarily remove calendar feature because I don't know how it works
Ruborcalor Sep 21, 2019
7ebd94c
serve.js adjusted for apache and modify .gitignore
Ruborcalor Sep 21, 2019
788111d
removing console.logs
Ruborcalor Sep 22, 2019
361f663
add google analytics tracking
Ruborcalor Oct 2, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules/
package-lock.json
61 changes: 56 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,42 @@
# Aspine

Who needs Aspen when you have Aspine! It serves as a one stop shop for everything Aspen related, and actually looks nice!
Who needs Aspen when you have Aspine. It serves as a one stop shop for everything Aspen related, and there are rainbows!

## Getting Started

Using Aspine is as easy as 1, 2, 3. Just visit aspine.us and login with your Aspen credientials!
Using Aspine is as easy as 1, 2, 3. Just visit aspine.us and login with your Aspen credentials.

## Features

* Everything Aspen, but better!
* Aesthetic Grade Checking
* CRLS Clock

![CRLS Clock Image](images/crls_clock.png)

* Grade Comparison via boxplot

![Example Boxplot Image](images/boxplot.png)

* Calendar

![Example Calendar Image](images/calendar.png)

* Chat with your classmates (coming soon...)

## FAQ

##### How are usernames and passwords handled?

Aspine does not store any usernames or passwords.

##### How are calculated grades computed?

First, calculated category percentages are computed by dividing a student's total earned points within a category by the total available points for that category. Then, the category percentages are multiplied by their respective weights and summed in order to produce the calculated grade for a class.

Note:
* Assignments scored with free text (i.e. "Missing", "Exempt") are ignored during grade computation. (Improvements coming soon)
* Due to the mysterious workings of Aspen, it is impossible to achieve 100% accuracy when making grade prediction calculations. That being said, Aspine's cutting edge grade calcuation algorithm is unmatched.


## Built With
* [Tabulator](https://github.com/olifolkerd/tabulator)
Expand All @@ -28,6 +48,17 @@ Using Aspine is as easy as 1, 2, 3. Just visit aspine.us and login with your Asp

Feel free to suggest an enhancement or post a bug issue either via github issues or this [google form](https://goo.gl/forms/PYQDtzkp0vHJbFLz2)!

If you would like to directly contribute to Aspine, you can fork this repository and clone your fork on your computer with a [git](https://git-scm.com/) client. To test your additions to Aspine:

* Make sure that you have installed [node.js](https://nodejs.org/), npm, and [redis](https://redis.io/).
* On Windows or macOS, download node.js and redis from their websites, and install them.
* On GNU+Linux, you should be able to find these in your package manager (e.g. `apt`/`dpkg`, `yum`/`dnf`, `zypper`, `pacman`). npm may be in a separate package from node.js.
* Open a terminal or command prompt, navigate to the directory in which you cloned the Aspine git repository, and run `redis-server redis.conf`.
* Open another terminal or command prompt, navigate to that same directory, and run `npm install` to install the required dependencies.
* In the same terminal or command prompt, run `node ./serve.js insecure`, or `node ./serve.js insecure fake` to use the `sample.json` file instead of pulling from Aspen (for faster testing).

These instructions have only been tested on GNU+Linux. You might need to change your `PATH` on Windows if you get an error saying that `node` is not found after installing node.js.

## Authors

* [**Max Katz-Christy**](https://github.com/maxtkc)
Expand All @@ -36,7 +67,7 @@ Feel free to suggest an enhancement or post a bug issue either via github issues

## [Color Scheme](http://paletton.com/#uid=12W0u0kw0e-n8nFrjj8Hz9QS55d)

![Color Palette](/color_palette.png)
![Color Palette](images/color_palette.png)

```
Primary Color: #00551D
Expand All @@ -47,6 +78,26 @@ Secondary Colors:
- #001E0A
```

#### Grade Lettering and Coloring

| Grade Range | Letter | Primary Color | Secondary Color |
| :----------- |:--------------|:------ |:------ |
| 96.5 - 100 | A+ |#1E8541 |#3d995c |
| 92.5 - 96.4 | A |#1E8541 |#3d995c |
| 89.5 - 92.4 | A- |#1E8541 |#3d995c |
| 86.5 - 89.4 | B+ |#6666FF |#a3a3f5 |
| 82.5 - 86.4 | B |#6666FF |#a3a3f5 |
| 79.5 - 82.4 | B- |#6666FF |#a3a3f5 |
| 76.5 - 79.4 | C+ |#ff9900 |#eba947 |
| 72.5 - 76.4 | C |#ff9900 |#eba947 |
| 69.5 - 72.4 | C- |#ff9900 |#eba947 |
| 66.5 - 69.4 | D+ |Orange |#ebb147 |
| 62.5 - 66.4 | D |Orange |#ebb147 |
| 59.5 - 62.4 | D- |Orange |#ebb147 |
| 0 - 59.4 | F |Red |#eb4747 |



## License

This project is licensed under the GNU License - see the [LICENSE.md](LICENSE.md) file for details
This project is licensed under the GNU General Public License, version 3 - see the [LICENSE.md](LICENSE.md) file for details.
Binary file modified db/dump.rdb
Binary file not shown.
6 changes: 6 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,24 @@
"body-parser": "^1.18.3",
"cheerio": "^1.0.0-rc.2",
"compression": "^1.7.4",
"concat-stream": "^2.0.0",
"connect-redis": "^3.4.0",
"encoding": "^0.1.12",
"express": "^4.16.4",
"express-session": "^1.15.6",
"fullcalendar": "^3.10.0",
"gulp": "^4.0.0",
"http-server": "^0.11.1",
"jquery": "^3.3.1",
"memfs": "^2.15.2",
"memory-streams": "^0.1.3",
"minimist": "^1.2.0",
"moment": "^2.24.0",
"node-fetch": "^2.3.0",
"prompt": "^1.0.0",
"redis": "^2.8.0",
"request": "^2.88.0",
"selenium-webdriver": "^4.0.0-alpha.1",
"socket.io": "^2.2.0",
"validator": "^10.11.0"
},
Expand Down
94 changes: 92 additions & 2 deletions public/css/stylesheet.css
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ form.login100-form {
color: black;
}

i.fa.fa-plus {
i.fa.fa-plus.grades {
color: #00551C;
padding-left: 31%;
padding-top: 25%;
Expand All @@ -290,7 +290,7 @@ i.fa.fa-info-circle {
padding-left: 31%;
padding-top: 25%;
font-size: large;
cursor: pointer;
cursor: default;
}

i.fa.fa-eye-slash {
Expand Down Expand Up @@ -581,3 +581,93 @@ input#calendar-add-submit:hover {
p#add-calendar-error {
color: red;
}



/* Add a black background color to the top navigation */
.topnav {
background-color: #333;
overflow: visible;
height: 41px;
}

/* Style the links inside the navigation bar */
.topnav span.right {
float: right;
color: #f2f2f2;
text-align: center;
padding: 10px 16px;
text-decoration: none;
font-size: 14px;
}

/* Change the color of links on hover */
.topnav span.right.hover:hover {
background-color: #555;
color: #f2f2f2;
}


/* The container must be positioned relative: */
.custom-select {
position: relative;
font-family: Arial;
float: left;
}

.custom-select select {
display: none; /*hide original SELECT element: */
}

.select-selected {
background-color: DodgerBlue;
}

/* Style the arrow inside the select element: */
.select-selected:after {
position: absolute;
content: "";
top: 17px;
right: 10px;
width: 0;
height: 0;
border: 6px solid transparent;
border-color: #fff transparent transparent transparent;
}

/* Point the arrow upwards when the select box is open (active): */
.select-selected.select-arrow-active:after {
border-color: transparent transparent #fff transparent;
top: 10px;
}

/* style the items (options), including the selected item: */
.select-items div,.select-selected {
color: #ffffff;
padding: 10px 16px;
border: 1px solid transparent;
border-color: transparent transparent rgba(0, 0, 0, 0.1) transparent;
cursor: pointer;
}

/* Style items (options): */
.select-items {
position: absolute;
background-color: DodgerBlue;
top: 100%;
left: 0;
right: 0;
z-index: 99;
}

/* Hide the items when the select box is closed: */
.select-hide {
display: none;
}

.select-items div:hover, .same-as-selected {
background-color: rgba(0, 0, 0, 0.1);
}



Loading