Skip to content

CMPS 115 Initial Release #43

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 469 commits into
base: release
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
469 commits
Select commit Hold shift + click to select a range
19524b9
Merge branch 'development' of https://github.com/SeijiEmery/CourseGra…
xuyanwen2012 Jul 12, 2018
91c8a01
hacking on fields; may need to rewrite this
SeijiEmery Jul 13, 2018
a7d4bd0
parsed most fields (some bugs)
SeijiEmery Jul 13, 2018
621f683
fixed issues
SeijiEmery Jul 13, 2018
7ca3b59
basic graph(node view)
Kuahoo Jul 13, 2018
7b4dce9
fixed some spacing
Kuahoo Jul 13, 2018
643665e
added the color function to nodes
Kuahoo Jul 13, 2018
54b8ef8
changed var to let
Kuahoo Jul 13, 2018
1ba1086
Remove outdated api and data
xuyanwen2012 Jul 14, 2018
8e6bfc4
Fix Fetching Bug
xuyanwen2012 Jul 14, 2018
8951254
cleaned up code
SeijiEmery Jul 14, 2018
591ebe2
added course list (temp text dump)
SeijiEmery Jul 14, 2018
e50a278
Adding login page
xuyanwen2012 Jul 14, 2018
abe12e9
Adding proper List view
xuyanwen2012 Jul 14, 2018
69993f0
made changes
SeijiEmery Jul 14, 2018
a6d40ca
Cleanup old pages, components, refactoring code
xuyanwen2012 Jul 14, 2018
4712f3f
Upgrade client to https
xuyanwen2012 Jul 14, 2018
96ad40f
moved data model (temp) into separate file
SeijiEmery Jul 14, 2018
a00b278
Fake data generator
xuyanwen2012 Jul 14, 2018
c28a6a8
refactoring; setup structure to finish crawler with TDD
SeijiEmery Jul 15, 2018
cc3ae46
built out utils to enable saner child element searching
SeijiEmery Jul 15, 2018
fd84c9a
implemented childRange as a full bidirectional, random-access range
SeijiEmery Jul 15, 2018
b142662
demo-ed code to make sure the section selections work
SeijiEmery Jul 15, 2018
61e773d
wrote simple expect() library and refactored unittests
SeijiEmery Jul 15, 2018
78ccc06
PopMenu
wendyrliang Jul 15, 2018
93c4936
fixed + collected all contact info
SeijiEmery Jul 15, 2018
75b6c1f
finished parsing faculty info from the ucsc registrar
SeijiEmery Jul 15, 2018
364b083
started parsing courses
SeijiEmery Jul 15, 2018
b709af2
Database Query from Browser
xuyanwen2012 Jul 15, 2018
1c7c9ee
Add LRUCache
xuyanwen2012 Jul 15, 2018
51c163a
struggled with this last bit for ~ 20 minutes until I realized I'd ma…
SeijiEmery Jul 15, 2018
7460a82
Update Material UI with official demo
xuyanwen2012 Jul 15, 2018
c062598
Update styled-jsx
xuyanwen2012 Jul 15, 2018
55091a8
Fix api routing
xuyanwen2012 Jul 15, 2018
1594f60
fixing edge cases...
SeijiEmery Jul 15, 2018
1730ce9
cleanup + bugfixes
SeijiEmery Jul 15, 2018
e66e43f
fixed ElementRange impl
SeijiEmery Jul 15, 2018
e256b4b
added jsonizer for output
SeijiEmery Jul 15, 2018
3a5d81f
started writing thorough unittests for parser code
SeijiEmery Jul 15, 2018
912b8c6
added text dumps for testing
SeijiEmery Jul 15, 2018
404fab0
added unittests
SeijiEmery Jul 15, 2018
b6fc4be
Implementing Instant Search API
xuyanwen2012 Jul 15, 2018
c94d3f7
Refactor files, Write documents
xuyanwen2012 Jul 15, 2018
dfed76a
Adding Highlight
xuyanwen2012 Jul 15, 2018
21b7d66
Merge pull request #32 from coursegraph/feature-instant-search
xuyanwen2012 Jul 15, 2018
516b4ef
came up with thorough list of regex replacement rules (for raw text d…
SeijiEmery Jul 15, 2018
a55b1cd
Integrating actual data
xuyanwen2012 Jul 15, 2018
ff047d0
Adding Stylesheet for Search Page
xuyanwen2012 Jul 15, 2018
e45d329
renamed file; added fixSentences function
SeijiEmery Jul 15, 2018
7fbc85c
Fixed it up
ThePatrickLauderdale Jul 15, 2018
c3354a6
Initial setup
xuyanwen2012 Jul 15, 2018
36527c7
Adding costume config
xuyanwen2012 Jul 15, 2018
786f981
Initial set up
xuyanwen2012 Jul 16, 2018
0425fc3
PopMenu
wendyrliang Jul 16, 2018
6c4bd12
Start Integrate VIS and InstantSearch
xuyanwen2012 Jul 16, 2018
a82c0a4
Change API to serve data from database
xuyanwen2012 Jul 16, 2018
af7afb3
new schema
ThePatrickLauderdale Jul 16, 2018
e0458ab
made progress
SeijiEmery Jul 17, 2018
aa28d84
wrote a bunch of validator stuff for course names... then threw it ou…
SeijiEmery Jul 17, 2018
4c8e4e3
building out parse cases. not parsing semantically, just to see which…
SeijiEmery Jul 17, 2018
ad63197
adding cases
SeijiEmery Jul 17, 2018
509c6a8
added more cases. not done, but I think I'll stop here...
SeijiEmery Jul 17, 2018
828ac89
wrote nifty algorithm for transforming shitty input (ie. "CHEM 1A/B/C…
SeijiEmery Jul 17, 2018
8be5b47
finished basic output
SeijiEmery Jul 17, 2018
395c1dd
added pretty formatting
SeijiEmery Jul 17, 2018
19d66af
fixed parallelism (so it now actually works -_-)
SeijiEmery Jul 17, 2018
1f896db
added a nice-ish commandline interface
SeijiEmery Jul 17, 2018
7a4ae10
added preliminary impl for ucsc registrar...
SeijiEmery Jul 17, 2018
9fb0518
wrote a quick script to transform data into a vis.js format
SeijiEmery Jul 17, 2018
dc4a287
setup demo page
SeijiEmery Jul 17, 2018
272956b
fleshed out arguments
SeijiEmery Jul 18, 2018
9563cf5
renamed file
SeijiEmery Jul 18, 2018
f26b4ff
fixed departments (ie. should alias)
SeijiEmery Jul 18, 2018
21e5c0b
fixed edge order
SeijiEmery Jul 18, 2018
a342e53
Playing around with UCSD Graph
xuyanwen2012 Jul 18, 2018
6f28c39
Fix instantsearch npm denpendency bug
xuyanwen2012 Jul 18, 2018
8434e06
Merge pull request #31 from coursegraph/fuzzysearch
SeijiEmery Jul 19, 2018
a06ecac
Merge pull request #33 from coursegraph/graph-viz-prototype
SeijiEmery Jul 19, 2018
4e7702f
Merge pull request #34 from coursegraph/feature-d3-graph
SeijiEmery Jul 19, 2018
48593b8
some refactoring
ThePatrickLauderdale Jul 19, 2018
5945c0d
Merge pull request #37 from coursegraph/crawlers
SeijiEmery Jul 19, 2018
4633394
updated graph
SeijiEmery Jul 19, 2018
ad1fc69
PopMenu: draggable, Popups: tags
wendyrliang Jul 19, 2018
fff89d3
updated to include title, etc
SeijiEmery Jul 19, 2018
5460fe7
removed graph
SeijiEmery Jul 19, 2018
8626c54
Merge branch 'development' into feature-vis-graph
SeijiEmery Jul 19, 2018
0a76d6c
Merge pull request #35 from coursegraph/feature-vis-graph
SeijiEmery Jul 19, 2018
873b62a
Merge branch 'development' into searchbar
SeijiEmery Jul 19, 2018
e389165
PopMenu
wendyrliang Jul 19, 2018
99adf3b
Merge pull request #38 from coursegraph/searchbar
SeijiEmery Jul 19, 2018
c2d16a6
Merge remote-tracking branch 'crawlers/master' into pull-crawlers
SeijiEmery Jul 19, 2018
50f64d9
Merge pull request #39 from coursegraph/pull-crawlers
SeijiEmery Jul 19, 2018
145bd82
Merge branch 'development' into sprint3
SeijiEmery Jul 19, 2018
f0bb2ca
Clean up code
xuyanwen2012 Jul 19, 2018
91ce1dc
Merge branch 'sprint3' of https://github.com/SeijiEmery/CourseGraph i…
xuyanwen2012 Jul 19, 2018
1a6387c
re-added files
SeijiEmery Jul 19, 2018
bb469f9
Merge pull request #40 from coursegraph/pull-crawlers
SeijiEmery Jul 19, 2018
9f7ae81
Merge branch 'development' into sprint3
SeijiEmery Jul 19, 2018
4f16779
cleanup
SeijiEmery Jul 19, 2018
f6a6989
moved graph into separate component
SeijiEmery Jul 19, 2018
7b578e3
moved graph view into separate component
SeijiEmery Jul 19, 2018
ab369aa
separated GraphViewApp into GraphViewLoader and GraphViewAssembly
SeijiEmery Jul 19, 2018
e80b8ac
fixed => export default
SeijiEmery Jul 19, 2018
a2cd81d
refactored window content out of Popup
SeijiEmery Jul 19, 2018
42c3890
refactored out course details window
SeijiEmery Jul 19, 2018
0d3abe2
started scaffolding search bar; giving up on popmenu (for now...)
SeijiEmery Jul 19, 2018
190fa81
got basic fuzzy search working
SeijiEmery Jul 19, 2018
64125cf
started running w/ full dataset; fixed initial performance issue quit…
SeijiEmery Jul 19, 2018
0b3e7d1
implemented levenshtein (doesn't really work that well tho)
SeijiEmery Jul 19, 2018
f31df92
[Eslint] Clean up code
xuyanwen2012 Jul 19, 2018
37fcdf1
Added drawer
ThePatrickLauderdale Jul 19, 2018
da06bdb
refactored crawler
SeijiEmery Jul 20, 2018
498585b
updated output to include all data
SeijiEmery Jul 20, 2018
6bd508a
Tooltip component
wendyrliang Jul 20, 2018
f23c218
Tooltip
wendyrliang Jul 20, 2018
ca29e8d
Starting login page
xuyanwen2012 Jul 20, 2018
00568bf
setup UCSD API
xuyanwen2012 Jul 20, 2018
28e8249
Merge branch 'sprint3' of https://github.com/SeijiEmery/CourseGraph i…
xuyanwen2012 Jul 20, 2018
fa21906
Cleanup code
xuyanwen2012 Jul 20, 2018
7f4b17e
Tooltip
wendyrliang Jul 20, 2018
83e9f74
Tooltip/popup
wendyrliang Jul 20, 2018
22ab265
scrolling, dummy graph filter
ThePatrickLauderdale Jul 21, 2018
f4ffe53
added graph filter alogrithmn
ThePatrickLauderdale Jul 21, 2018
e97de45
filter function
Kuahoo Jul 21, 2018
4e15250
prototype graph filter
Kuahoo Jul 21, 2018
e768829
Graph can be filtered
ThePatrickLauderdale Jul 21, 2018
e4837db
Multiple classes can be selected
ThePatrickLauderdale Jul 21, 2018
bea7cf6
removed duplicate filteralgroithm
Kuahoo Jul 22, 2018
f365c37
Can deselect courses
ThePatrickLauderdale Jul 22, 2018
f6c1b1b
commented out consoles logs
ThePatrickLauderdale Jul 22, 2018
35203a0
Merge branch 'sprint3' of https://github.com/coursegraph/CourseGraph …
Kuahoo Jul 22, 2018
af5bc51
changed ListItemText values
Kuahoo Jul 22, 2018
25ad42a
styled selected listItem
Kuahoo Jul 22, 2018
c63030a
Eslint fix
xuyanwen2012 Jul 22, 2018
d53ade2
Remove Redux and Doc gen
xuyanwen2012 Jul 22, 2018
fda2961
Merge branch 'sprint3' of https://github.com/coursegraph/CourseGraph …
Kuahoo Jul 22, 2018
ea55974
Merge branch 'sprint3' of https://github.com/coursegraph/CourseGraph …
Kuahoo Jul 22, 2018
e5b56fa
expanded filterGraph algorithmn
ThePatrickLauderdale Jul 22, 2018
9584e08
Chips instead of an ugly list
ThePatrickLauderdale Jul 23, 2018
acbd22b
Adding Floating Action Button component
xuyanwen2012 Jul 23, 2018
b5789d6
Merge branch 'sprint3' of https://github.com/SeijiEmery/CourseGraph i…
xuyanwen2012 Jul 23, 2018
9dc526e
Merge branch 'sprint3' of https://github.com/SeijiEmery/CourseGraph i…
xuyanwen2012 Jul 23, 2018
f30334b
refactored colors (deselect broken)
SeijiEmery Jul 23, 2018
ca577f7
fixed node deselection; cleanup
SeijiEmery Jul 23, 2018
aae48c1
resolved merge conflict
SeijiEmery Jul 23, 2018
0217ce3
graph_view double click
wendyrliang Jul 23, 2018
053be43
Refactored graph_view_assembly
ThePatrickLauderdale Jul 23, 2018
612a398
Merge branch 'sprint3' of https://github.com/coursegraph/CourseGraph …
ThePatrickLauderdale Jul 23, 2018
10da594
Count UCSD department Objects
xuyanwen2012 Jul 23, 2018
779efbd
minor refactor filterAlgorithm
ThePatrickLauderdale Jul 23, 2018
aa6cf23
Merge branch 'sprint3' of https://github.com/coursegraph/CourseGraph …
ThePatrickLauderdale Jul 23, 2018
f657ea8
Account pages, setting up login pages
xuyanwen2012 Jul 23, 2018
9d9d9c6
Login POST request done
xuyanwen2012 Jul 23, 2018
856e680
Added GraphSelection class (untested, probably incomplete)
ThePatrickLauderdale Jul 23, 2018
610f9b2
Home Page
xuyanwen2012 Jul 23, 2018
964c000
Merge branch 'sprint3' of https://github.com/SeijiEmery/CourseGraph i…
xuyanwen2012 Jul 23, 2018
fc56a79
wrote function to grab registrar index urls
SeijiEmery Jul 23, 2018
a96514d
GraphSelection class updated (still buggy)
ThePatrickLauderdale Jul 23, 2018
7c15299
Merge branch 'sprint3' of https://github.com/coursegraph/CourseGraph …
ThePatrickLauderdale Jul 23, 2018
75225da
wrote course page fetcher
SeijiEmery Jul 23, 2018
7aa7003
started ucsc course parser
SeijiEmery Jul 23, 2018
82fd99e
started parsing course descrips
SeijiEmery Jul 23, 2018
040f929
rewrote fetch_course_pages to handle whitespace (and unicode) correctly
SeijiEmery Jul 23, 2018
4ba8118
cleanup; fully switched to python3 (was supporting python2 for idk wh…
SeijiEmery Jul 23, 2018
9cd4a93
cleaned up output
SeijiEmery Jul 23, 2018
556f836
started parsing ucsc courses
SeijiEmery Jul 23, 2018
56aec63
parsing course listings...
SeijiEmery Jul 23, 2018
0df6931
fixed annoying edge cases
SeijiEmery Jul 23, 2018
4cc1aab
more stupid edge cases
SeijiEmery Jul 23, 2018
aaaf573
blame the f***ing history dept (and film). acronyms !#$*^#*&!
SeijiEmery Jul 23, 2018
5836057
filtering out <p align="..."> tags failed for some reason for biochem…
SeijiEmery Jul 23, 2018
86251d6
finished edge cases...?!
SeijiEmery Jul 23, 2018
0d02cf4
parsed instructors
SeijiEmery Jul 23, 2018
3fdb46e
Code Cleanup
xuyanwen2012 Jul 23, 2018
531989d
added info log of courses by dept / div
SeijiEmery Jul 23, 2018
b0a8c79
working on proper prereq parser
SeijiEmery Jul 23, 2018
0556759
added hoverNode event
wendyrliang Jul 23, 2018
9db12d6
fixed index parsing (only was fetching half of all course listings...)
SeijiEmery Jul 23, 2018
70926b6
fixed history edge cases
SeijiEmery Jul 23, 2018
3fc4677
fixed weird edge case where the lit page has nested divs...
SeijiEmery Jul 23, 2018
8e14826
fixed edgecases
SeijiEmery Jul 23, 2018
d2c782a
used a terrible hack to fix output from the sociology page (first cou…
SeijiEmery Jul 23, 2018
d21121c
crappy solution to SPECIFICALLY fix a line break inside of a strong t…
SeijiEmery Jul 24, 2018
098a868
fixed it again b/c someone on the anthropology page fucked up and put…
SeijiEmery Jul 24, 2018
ee9110d
updated to skip comments (was not aware that this WASN'T skipping com…
SeijiEmery Jul 24, 2018
024e6e3
User can now register account
xuyanwen2012 Jul 24, 2018
fa2d512
Introducing Home Page that can navigate us to UCSD page or UCSD page
xuyanwen2012 Jul 24, 2018
8bb2e16
Extract Home page panel components
xuyanwen2012 Jul 24, 2018
31c6b1f
added a ton of parse cases to filter out unneeded tokens
SeijiEmery Jul 24, 2018
fee8868
fixed graph view (was iterating over values, not keys. please read up…
SeijiEmery Jul 24, 2018
176b44c
Switch to simple login system
xuyanwen2012 Jul 24, 2018
e0822c0
Rearrange files
xuyanwen2012 Jul 24, 2018
ef6b203
Implement server-side fetch
xuyanwen2012 Jul 24, 2018
6fa218b
Remove console Warning
xuyanwen2012 Jul 24, 2018
a4b43f5
Minimal Refactoring
xuyanwen2012 Jul 24, 2018
b31b88b
Continue refactoring + Serve UCSD graph data
xuyanwen2012 Jul 25, 2018
12a0011
Update Favicon
xuyanwen2012 Jul 25, 2018
ffa6b5e
Change API URL to or actuall server
xuyanwen2012 Jul 25, 2018
cd1d1f3
Fix Floating button bug, add true Fullpage graph view
xuyanwen2012 Jul 25, 2018
ce967f5
Graph Color by department
xuyanwen2012 Jul 25, 2018
e889db0
Refactoring Code style
xuyanwen2012 Jul 25, 2018
9e4018a
Refactoring Code Style
xuyanwen2012 Jul 25, 2018
696138c
Graph Info Card
xuyanwen2012 Jul 25, 2018
0c35cae
Update fetch
xuyanwen2012 Jul 25, 2018
d23de23
Merge pull request #42 from coursegraph/feture-SSR-fetch
xuyanwen2012 Jul 25, 2018
c952b2c
update README.md
Kuahoo Jul 25, 2018
b8aabbc
Optimization ssr-caching and Production CORS setting
xuyanwen2012 Jul 25, 2018
f5443da
Fix Bug, do not cache Graph page
xuyanwen2012 Jul 25, 2018
3ebf0da
Merge branch 'development' into ucsc-data
SeijiEmery Jul 25, 2018
3c1a163
Merge branch 'development' into sprint3
SeijiEmery Jul 25, 2018
8af0a1a
Merge remote-tracking branch 'origin/sprint3' into sprint3
SeijiEmery Jul 25, 2018
98bc764
removed data files
SeijiEmery Jul 25, 2018
e3eb1a2
refactored crawler
SeijiEmery Jul 20, 2018
162aa84
updated output to include all data
SeijiEmery Jul 20, 2018
dd35abd
Merge branch 'firebase' of https://github.com/coursegraph/CourseGraph…
SeijiEmery Jul 25, 2018
d057980
added gitignore for data outputs
SeijiEmery Jul 25, 2018
61580b6
wrote function to grab registrar index urls
SeijiEmery Jul 23, 2018
25ae2b5
wrote course page fetcher
SeijiEmery Jul 23, 2018
7128461
started ucsc course parser
SeijiEmery Jul 23, 2018
457769f
started parsing course descrips
SeijiEmery Jul 23, 2018
85480cf
rewrote fetch_course_pages to handle whitespace (and unicode) correctly
SeijiEmery Jul 23, 2018
df8a0ed
cleanup; fully switched to python3 (was supporting python2 for idk wh…
SeijiEmery Jul 23, 2018
12a8729
cleaned up output
SeijiEmery Jul 23, 2018
9c8761b
started parsing ucsc courses
SeijiEmery Jul 23, 2018
05d4e6e
parsing course listings...
SeijiEmery Jul 23, 2018
e5eb758
fixed annoying edge cases
SeijiEmery Jul 23, 2018
18305e9
more stupid edge cases
SeijiEmery Jul 23, 2018
3fddd5f
blame the f***ing history dept (and film). acronyms !#$*^#*&!
SeijiEmery Jul 23, 2018
8feefa5
filtering out <p align="..."> tags failed for some reason for biochem…
SeijiEmery Jul 23, 2018
084f610
finished edge cases...?!
SeijiEmery Jul 23, 2018
f72256a
parsed instructors
SeijiEmery Jul 23, 2018
0d4933a
added info log of courses by dept / div
SeijiEmery Jul 23, 2018
dd58b5d
working on proper prereq parser
SeijiEmery Jul 23, 2018
24f97ef
fixed index parsing (only was fetching half of all course listings...)
SeijiEmery Jul 23, 2018
97efea0
fixed history edge cases
SeijiEmery Jul 23, 2018
42aca19
fixed weird edge case where the lit page has nested divs...
SeijiEmery Jul 23, 2018
6467bd2
fixed edgecases
SeijiEmery Jul 23, 2018
a20f044
used a terrible hack to fix output from the sociology page (first cou…
SeijiEmery Jul 23, 2018
24c76b4
crappy solution to SPECIFICALLY fix a line break inside of a strong t…
SeijiEmery Jul 24, 2018
82435c4
fixed it again b/c someone on the anthropology page fucked up and put…
SeijiEmery Jul 24, 2018
d633682
updated to skip comments (was not aware that this WASN'T skipping com…
SeijiEmery Jul 24, 2018
0a4659e
added a ton of parse cases to filter out unneeded tokens
SeijiEmery Jul 24, 2018
0964fca
Merge branch 'ucsc-data' of https://github.com/coursegraph/CourseGrap…
SeijiEmery Jul 25, 2018
4fdae30
merged minor changes / refactoring done in firebase branch w/ ucsc-da…
SeijiEmery Jul 25, 2018
5af2901
removed data file
SeijiEmery Jul 25, 2018
f89788e
Merge pull request #44 from coursegraph/ucsc-data
SeijiEmery Jul 25, 2018
5d98036
Merge pull request #45 from coursegraph/sprint3
SeijiEmery Jul 25, 2018
044545d
Merge pull request #46 from coursegraph/development
SeijiEmery Jul 25, 2018
0c14177
made search bar draggable
SeijiEmery Jul 26, 2018
9f05cd9
Merge remote-tracking branch 'origin/master' into development
SeijiEmery Aug 11, 2018
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
13 changes: 13 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"env": {
"development": {
"presets": ["next/babel"]
},
"production": {
"presets": ["next/babel"]
},
"test": {
"presets": [["next/babel", {"preset-env": {"modules": "commonjs"}}]]
}
}
}
13 changes: 13 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
node_modules/
.next/
.idea/
coverage/
static/
spider/
data/
assets/
crawlers/
docs/
*.json
*.md
LICENSE
26 changes: 26 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"fbjs"
],
"env": {
"browser": true,
"commonjs": true,
"node": true,
"es6": true
},
"parserOptions": {
"ecmaVersion": 8,
"sourceType": "module"
},
"parser": "babel-eslint",
"rules": {
"no-console": "off",
"strict": [
"error",
"global"
],
"curly": "warn"
}
}
79 changes: 25 additions & 54 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,61 +1,32 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components
# See https://help.github.com/ignore-files/ for more about ignoring files.

# node-waf configuration
.lock-wscript
# dependencies
/node_modules/

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# testing
/coverage/

# Dependency directories
node_modules/
jspm_packages/
# production
/build/
/dist/
/.next/

# TypeScript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz
# misc
.DS_Store
.env
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Yarn Integrity file
.yarn-integrity
/.idea/
package-lock.json

# dotenv environment variables file
.env
*.pyc
/.coveralls.yml

# next.js build output
.next
/crawlers/ucsc/data/*
/crawlers/ucsc/prereqs
/crawlers/ucsc/unparsed
crawlers/ucsc/temp
crawlers/ucsd/ucsd_courses.json
crawlers/ucsd/ucsd_graph_data.json
10 changes: 10 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
language: node_js
node_js:
- "8"
- "9"
- "10"
install:
- npm install
script:
- npm run pretest
- npm run test:ci
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2018 Course Graph

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
153 changes: 152 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,152 @@
# CourseGraph
<p align="center">
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Readme needs to be updated


![coursegraph](./assets/logo.png)

[![Build Status](https://travis-ci.org/coursegraph/CourseGraph.svg?branch=development)](https://travis-ci.org/coursegraph/CourseGraph)
[![Coverage Status](https://coveralls.io/repos/github/coursegraph/CourseGraph/badge.svg)](https://coveralls.io/github/coursegraph/CourseGraph)
[![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://github.com/facebook/jest)
[![jest](https://jestjs.io/img/jest-badge.svg)](https://github.com/facebook/jest)
[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/coursegraph/CourseGraph/blob/master/LICENSE.md)

</p>

## Introduction

The course search software offered by UCSC (and most colleges) kind of sucks, and there is no easy way to explore classes and majors without a counselor – and the counselors could probably use some help too!

Solution? CourseGraph, a webapp that will:

+ datamine pisa and the registrar for course information and sections (and major / minor requirements if we can do that)
+ display this information visually as a web of interdependent courses and major requirements, filterable and presented through different layers and views

Technology: we will need

+ a web frontend (probably React, vis.js, material-ui) and people interested in UX and software design (myself included)
+ a web backend (probably node, mongoDB) and people interested in backend development and data storage / retrieval
+ several web crawlers to datamine UCSC sites and maybe others; anyone interested in this please apply!
+ possible integration of other web services (if we could embed eg. ratemyprofessors that would be awesome)

Is this feasible in <5 weeks?

+ Yes, but it will be challenging as we'll have a lot of work to do
+ Plus side is we all get to wear lots of hats and use a lot of cool tech to build a real tool that students and counselors can use to explore class options and make planning schedules a lot easier
+ This project can be subdivided with 2-3 teams working in parallel on different components (eg. frontend and data mining), so we should be able to work without too many bottlenecks

You do NOT need to have experience with react, node, or Vis to join this project, just a good attitude and a willingness to learn and contribute.

That said, you will need time to learn a bit of typescript and either frontend (react, vis.js), backend (node, databases – ask Ivan), or data mining (web crawlers, either node or python), since we'll probably be splitting into sub-teams that focus on one of those categories. And you'll need to do this fairly quickly (ie. over the next few weeks) since we'll need to hit the ground running as soon as possible. Oh, and if you'd like to do project management (as one of your many hats) that would be very useful too.

I'll be learning react and vis.js over the next week or so, so if you're interested in that (whether you're a part of this team or not) please hit me up! (ssemery@ucsc.edu)

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. (To developers) See deployment for notes on how to deploy the project on a live system.

### Prerequisites

[Node.js](https://nodejs.org/en/) - JavaScript runtime built on Chrome's V8 JavaScript engine.
[mongoDB] (https://docs.mongodb.com/manual/installation/) - MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling.

The minimum supported Node version is `v6.0.0` by default. (We are using `v10.0.0`).

```
node --version

// v10.0.0
```

### Installing

Clone our repository (or unzip the project and cd into the root folder),

```
git clone https://github.com/coursegraph/CourseGraph myProject
cd myProject
```

And install dependencies, via [`npm`](https://www.npmjs.com/) (installed with Node.js).

```
npm install
```

### Running the project

Running the project is as simple as running

```
npm run dev
```

This runs the `dev` script specified in our `package.json`, and will spawn off a server which reloads the page as we save our files. Typically the server runs at `http://localhost:3000`, but should be automatically opened for you.

## Running the tests

Testing is also just a command away:

```
npm run test
```

This command runs [`jest`](http://jestjs.io/) and [`enzyme`](http://airbnb.io/enzyme/), an incredibly useful testing utility.

## Built With

* [Next.js](https://nextjs.org/) - A lightweight framework for static and server‑rendered applications.
* [React](https://reactjs.org) - A JavaScript library for building user interfaces
* [Node.js](https://nodejs.org/en/) - A JavaScript runtime built on Chrome's V8 JavaScript engine.
* [MongoDB](https://www.mongodb.com/) - Build innovative modern applications that create a competitive advantage.

## Dependencies
* [Material-ui/core]
* [material-ui/icons]
* [algoliasearch]
* [bcrypt-nodejs]
* [body-parser]
* [compression]
* [connect-mongo'
* [crypto]
* [express]
* [express-flash]
* [express-session]
* [express-validator]
* [isomorphic-unfetch]
* [jss]
* [lru-cache]
* [mongoose]
* [next]
* [npgrogress]
* [passport]
* [passport-local]
* [prop-types]
* [qs]
* [react]
* [react-dom]
* [react-draggable]
* [react-graph-vis]
* [react-instantsearc]
* [react-jss]
* [reactjs-popup]
* [styled-jsx]


## Authors

* **Seiji Emery** ([SeijiEmery](https://github.com/SeijiEmery) ) - Lead Tech Developer
* **Yanwen Xu** ([RaiderSoap](https://github.com/RaiderSoap) ) - :floppy_disk: Back-End Developer
* **Patrick Lauderdale** ([ThePatrickLauderdale](https://github.com/ThePatrickLauderdale)) - FrontEnd Developer
* **Wendy Liang** ([wendyrliang](https://github.com/wendyrliang) ) - FrontEnd Developer
* **Ka Ho Tran** ([Kutaho](https://github.com/Kutaho) ) - FrontEnd Developer
* **Nikki Miller** ([NikMills](https;//github.com/nikmills)) - FrontEnd Developer

See also the list of [contributors](https://github.com/coursegraph/CourseGraph/settings/collaboration) who participated in this project.

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

## Acknowledgments

Big thanks to Richard Jullig.

:kissing_heart:
Binary file added assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions components/Course.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import React from 'react';
import PropTypes from 'prop-types';

/**
* @inheritDoc
*/
class Course extends React.Component {
static propTypes = {
title: PropTypes.string.isRequired,
};

static defaultProps = {
title: 'Null',
};

/**
* @return {Element}
*/
render() {
return (
<div className="Course">
<h3>
{this.props.title}
</h3>
</div>
);
}
}

export default Course;
17 changes: 17 additions & 0 deletions components/Course.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import React from 'react';
import { shallow } from 'enzyme';

import Course from './Course';


describe('A Course', () => {
it('should render default text without throwing an error', () => {
const wrapper = shallow(<Course/>);
expect(wrapper.find('h3').text()).toEqual('Null');
});

it('should render title props without throwing an error', () => {
const wrapper = shallow(<Course title="CMPS 101"/>);
expect(wrapper.find('h3').text()).toEqual('CMPS 101');
});
});
Loading