Skip to content

Commit 56c52f8

Browse files
authored
Merge pull request #444 from cornell-dti/master
Public Release v1.0.0
2 parents 347e7f2 + 93aae96 commit 56c52f8

File tree

280 files changed

+181231
-24217
lines changed

Some content is hidden

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

280 files changed

+181231
-24217
lines changed

.eslintrc.js

+43-44
Original file line numberDiff line numberDiff line change
@@ -2,90 +2,89 @@
22

33
module.exports = {
44
root: true,
5-
extends: ['eslint:recommended', 'plugin:vue/essential', '@vue/airbnb', '@vue/typescript', 'plugin:import/typescript'],
5+
extends: [
6+
'eslint:recommended',
7+
'plugin:@typescript-eslint/recommended',
8+
'plugin:vue/recommended',
9+
'@vue/airbnb',
10+
'@vue/typescript',
11+
'plugin:import/typescript',
12+
'prettier',
13+
'prettier/vue',
14+
],
615
plugins: ['@typescript-eslint'],
716
parserOptions: {
817
parser: '@typescript-eslint/parser',
918
ecmaVersion: 2020,
1019
sourceType: 'module',
1120
extraFileExtensions: ['.vue'],
12-
project: ['./tsconfig.json', './tsconfig.node.json']
21+
project: ['./tsconfig.json', './tsconfig.node.json'],
1322
},
1423
env: {
1524
browser: true,
16-
node: true
25+
node: true,
1726
},
1827
// add your custom rules here
1928
rules: {
20-
// TODO: change no-console to error out for prod
29+
'@typescript-eslint/ban-ts-comment': ['error'],
30+
'vue/attribute-hyphenation': ['off'],
31+
// TODO: auto-fix of this and the next rule introduces too many code changes that might cause merge conflict.
32+
'vue/attributes-order': ['off'],
33+
'vue/order-in-components': ['off'],
34+
'vue/no-v-html': ['error'],
2135
'no-console': ['warn'],
22-
// TODO: fix copied js code that makes this warn necessary
23-
'no-use-before-define': ['warn'],
24-
'linebreak-style': 0,
25-
//TODO: make requests asynchronous
2636
'no-await-in-loop': ['error'],
27-
// don't require .vue extension when importing
28-
'import/extensions': [
29-
'error',
30-
'always',
31-
{
32-
js: 'never',
33-
ts: 'never',
34-
vue: 'never'
35-
}
36-
],
3737
// disallow reassignment of function parameters
3838
// disallow parameter object manipulation except for specific exclusions
39-
'no-param-reassign': [2, { props: false }],
39+
'no-param-reassign': ['error', { props: false }],
4040
// allow optionalDependencies
4141
'import/no-extraneous-dependencies': [
4242
'error',
4343
{
44-
optionalDependencies: ['test/unit/index.js']
45-
}
44+
optionalDependencies: ['test/unit/index.js'],
45+
},
4646
],
4747
'no-mixed-operators': ['off'],
48-
'arrow-parens': ['error', 'as-needed'],
49-
'comma-dangle': ['error', 'never'],
5048
'no-continue': ['error'],
5149
'no-restricted-syntax': [
5250
'error',
5351
{
5452
selector: 'LabeledStatement',
5553
message:
56-
'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.'
54+
'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.',
5755
},
5856
{
5957
selector: 'WithStatement',
6058
message:
61-
'`with` is disallowed in strict mode because it makes code impossible to predict and optimize.'
62-
}
59+
'`with` is disallowed in strict mode because it makes code impossible to predict and optimize.',
60+
},
6361
],
64-
quotes: [
62+
'max-classes-per-file': ['off'],
63+
// TypeScript will handle it. It also doesn't work with typescript global types.
64+
'no-undef': ['off'],
65+
'@typescript-eslint/no-unused-vars': [
6566
'error',
66-
'single',
67-
{
68-
allowTemplateLiterals: true
69-
}
67+
{ vars: 'all', args: 'after-used', ignoreRestSiblings: true },
7068
],
71-
'max-len': ['error', { code: 200 }],
69+
'no-use-before-define': ['off'],
70+
'vue/no-mutating-props': ['warn'],
7271
// allow debugger during development
73-
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
72+
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
7473
},
7574
overrides: [
7675
{
77-
files: ['*.ts', '*.tsx'],
76+
files: ['*.ts', '*.tsx', '*.vue'],
7877
rules: {
7978
'import/extensions': [
8079
'error',
8180
'always',
8281
{
8382
js: 'never',
8483
ts: 'never',
85-
vue: 'always'
86-
}
87-
]
88-
}
84+
vue: 'always',
85+
},
86+
],
87+
},
8988
},
9089
{
9190
files: ['*.js'],
@@ -96,10 +95,10 @@ module.exports = {
9695
{
9796
js: 'never',
9897
ts: 'never',
99-
vue: 'never'
100-
}
101-
]
102-
}
103-
}
104-
]
98+
vue: 'never',
99+
},
100+
],
101+
},
102+
},
103+
],
105104
};

.firebaserc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"projects": {
3-
"default": "cornell-courseplan",
3+
"default": "cornelldti-courseplan-dev",
44
"staging": "cornelldti-courseplan-dev",
55
"production": "cornell-courseplan"
66
}

.gitattributes

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# Auto detect text files and perform LF normalization
22
* text=auto
3+
src/requirements/decorated-requirements.json linguist-generated=true

.github/PULL_REQUEST_TEMPLATE.md

+20-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,19 @@
88
This pull request is the first step towards implementing feature Foo
99

1010
- [x] implemented X
11-
- [ ] fixed Y
11+
- [x] fixed Y
12+
13+
<!--- Itemize any relevant remaining TODOs (especially for WIP PRs) here and on Notion -->
14+
15+
Remaining TODOs:
16+
17+
- [ ] resolve bug 1
18+
- [ ] implement Z
19+
20+
<!--- Note dependencies on other PRs if any. -->
21+
22+
Depends on #{number of PR}
23+
1224

1325
### Test Plan <!-- Required -->
1426

@@ -18,8 +30,15 @@ This pull request is the first step towards implementing feature Foo
1830

1931
<!--- List any important or subtle points, future considerations, or other items of note. -->
2032

33+
### Blockers <!-- Optional -->
34+
35+
<!--- Note and itemize any blockers (especially for WIP PRs) here and on Notion -->
36+
37+
- A newly discovered dependency that hasn’t been addressed
38+
2139
### Breaking Changes <!-- Optional -->
2240

2341
<!-- Keep items that apply: -->
42+
2443
- Database schema change (anything that changes Firestore collection structure)
2544
- Other change that could cause problems (Detailed in notes)

.github/workflows/ci-build.yml

+8-26
Original file line numberDiff line numberDiff line change
@@ -13,31 +13,13 @@ jobs:
1313
- name: NPM Install
1414
run: npm install
1515
- name: Build
16-
run: PUBLIC_URL="/course-plan/${{ github.event.number }}" npm run build:staging
17-
- name: Upload Built Static Assets
18-
uses: actions/upload-artifact@master
16+
run: npm run build:staging
17+
- uses: FirebaseExtended/action-hosting-deploy@v0
18+
if: env.SECRET != null
1919
with:
20-
name: built-assets
21-
path: dist
22-
deploy:
23-
runs-on: ubuntu-latest
24-
needs: [build]
25-
steps:
26-
- name: Download Built Static Assets
27-
uses: actions/download-artifact@master
28-
with:
29-
name: built-assets
30-
path: ${{ github.event.number }}
31-
- name: Deploy
32-
uses: peaceiris/actions-gh-pages@v3
33-
with:
34-
keep_files: true
35-
publish_dir: '.'
36-
github_token: '${{ secrets.BOT_TOKEN }}'
37-
- name: Comment on pull request
38-
uses: cornell-dti/dti-repo-tools@master
20+
repoToken: '${{ secrets.GITHUB_TOKEN }}'
21+
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_CORNELLDTI_COURSEPLAN_DEV }}'
22+
projectId: cornelldti-courseplan-dev
3923
env:
40-
BOT_TOKEN: '${{ secrets.BOT_TOKEN }}'
41-
with:
42-
command: pr-comment
43-
argument: '[deployment-bot] Deployed to https://cornell-dti.github.io/course-plan/${{ github.event.number }}/index.html'
24+
FIREBASE_CLI_PREVIEWS: hostingchannels
25+
SECRET: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CORNELLDTI_COURSEPLAN_DEV }}

.github/workflows/ci-check.yml

+8-6
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ jobs:
77
steps:
88
- uses: actions/checkout@master
99
- name: Set up Node
10-
uses: actions/setup-node@v1
11-
with:
12-
node-version: '10.x'
13-
- name: NPM Install
14-
run: npm install
10+
uses: actions/setup-node@v2-beta
11+
- name: NPM Clean Install
12+
run: npm ci
13+
- name: Run Prettier Check
14+
run: npm run format:check
1515
- name: Run Linter
1616
run: npm run lint
1717
- name: Type Check
18-
run: npm run tsc
18+
run: npm run type-check
19+
- name: Test
20+
run: npm run test

.github/workflows/cleanup-workflow.yml

-23
This file was deleted.

.prettierrc.js

-5
This file was deleted.

README.md

+62-2
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,81 @@
11
# CoursePlan
22

3-
Access CoursePlan at [courseplan.io](http://courseplan.io "courseplan.io")
3+
Access CoursePlan at [courseplan.io](http://courseplan.io 'courseplan.io')
44

55
CoursePlan is a four-year academic planner for Cornell undergraduates developed by the Design & Tech Initiative. CoursePlan helps undergraduates track their courses and their requirements automatically depending on their college, major, and minor. It aims to allow students view the big picture of their time at Cornell.
66

77
View documentation on updating requirements data.
88

99
## Project installation
10+
1011
```
1112
npm install
1213
```
1314

1415
## Run locally
16+
1517
```
1618
npm run serve
1719
```
20+
1821
Then access http://localhost:8080/
1922

23+
## Contributors
24+
25+
### SP21
26+
27+
- **Hahnbee Lee** - Developer
28+
- **Will Spencer** - Developer
29+
- **Jason Tung** - Developer
30+
- **Nikita Kasumov** - Developer
31+
- **Sam Zhou** - Developer
32+
- **Ben Shen** - Developer
33+
- **Yuxuan Chen** - Designer
34+
- **Cristie Huang** - Designer
35+
- **Theresa Cho** - TPM
36+
- **Ein Chang** - PM
37+
38+
### FA2020
39+
40+
- **Hahnbee Lee** - Developer
41+
- **Theresa Cho** - Developer
42+
- **Rose Zhou** - Developer
43+
- **Sam Zhou** - Developer
44+
- **Ben Shen** - Developer
45+
- **Ein Chang** - Developer/Designer
46+
- **Yuxuan Chen** - Designer
47+
- **Will Spencer** - TPM
48+
- **Han Wang** - PM
49+
50+
### SP20
51+
52+
- **Theresa Cho** - Developer
53+
- **Rose Zhou** - Developer
54+
- **Ayesha Gagguturi** - Developer
55+
- **Sam Zhou** - Developer
56+
- **Ein Chang** - Developer/Designer
57+
- **Emily Chan** - Designer
58+
- **Yuxuan Chen** - Designer
59+
- **Shane Yun** - Designer
60+
- **Chris Lee** - Designer
61+
- **Kathleen Xu** - PMM
62+
- **Will Spencer** - TPM
63+
- **Han Wang** - PM
64+
65+
### FA19
66+
67+
- **Theresa Cho** - Developer
68+
- **Ayesha Gagguturi** - Developer
69+
- **Bryant Lee** - Developer
70+
- **Will Spencer** - Developer
71+
- **Ein Chang** - Designer
72+
- **Emily Chan** - Designer
73+
- **Shane Yun** - Designer
74+
- **Chris Lee** - Designer
75+
- **Brandon Hong** - PMM
76+
- **Boon Palipatana** - TPM
77+
- **Han Wang** - PM
78+
2079
### Customize configuration
21-
See [Configuration Reference](https://cli.vuejs.org/config/).
80+
81+
See [Configuration Reference](https://cli.vuejs.org/config/).

babel.config.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = {
2+
presets: [['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-typescript'],
3+
};

firebase.json

+6-4
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
"**/.*",
77
"**/node_modules/**"
88
],
9-
"rewrites": [ {
10-
"source": "**",
11-
"destination": "/index.html"
12-
}]
9+
"rewrites": [
10+
{
11+
"source": "**",
12+
"destination": "/index.html"
13+
}
14+
]
1315
}
1416
}

0 commit comments

Comments
 (0)