Skip to content

Commit

Permalink
Update README file for both app and requirements
Browse files Browse the repository at this point in the history
  • Loading branch information
handotdev committed Jan 29, 2020
1 parent bd14187 commit 3c6a3ec
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 17 deletions.
26 changes: 9 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,21 @@
# CoursePlan

## Project setup
```
npm install
```
Access the alpha (if you have access) at [courseplan.io](http://courseplan.io "courseplan.io")

### Compiles and hot-reloads for development
```
npm run serve
```
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.

### Compiles and minifies for production
```
npm run build
```
View documentation on updating requirements data.

### Run your tests
## Project installation
```
npm run test
npm install
```

### Lints and fixes files
## Run locally
```
npm run lint
npm run serve
```
Then access http://localhost:8080/

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
See [Configuration Reference](https://cli.vuejs.org/config/).
41 changes: 41 additions & 0 deletions src/requirements/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Requirements data
The requirements data and its interpreting algorithm is uniquely developed by and for CoursePlan. The data for requirements data can be accessed at `requirements/reqs.json`. The structure is designed to be able to accurately express almost all requirements at Cornell while making it as easy as possible to read and maintain. Here's an example of the data for the College of Engineering.

```json
"EN": {
"name": "Engineering",
"requirements": [
{
"name": "Mathematics",
"description": "MATH 1910, 1920, 2930 or 2940, and a mathematics course chosen by the Major.",
"source": "https://www.engineering.cornell.edu/students/undergraduate-students/curriculum/undergraduate-requirements",
"search": "code",
"includes": [["MATH 1910"], ["MATH 1920"], ["MATH 2930", "MATH 2940"]],
"fulfilledBy": "credits",
"minCount": 14
},
{
"name": "Freshman Writing Seminars",
"description": "All students are required to take two first-year writing seminars.",
"source": "https://www.engineering.cornell.edu/students/undergraduate-students/curriculum/undergraduate-requirements",
"search": "catalogSatisfiesReq",
"includes": [["First-Year Writing Seminar."]],
"fulfilledBy": "credits",
"minCount": 6
}
]
}
```

| Attribute | Description | Value |
| ------------ | ------------ | ------------ |
| name | full name of the requirement | any string |
| description | description of the requirement | string copied from source |
| source | the soure with more information on the requirement | a URL string |
| search | the command used to determine whether courses satisfy the requirement | (special search: all, all-elidgible, code) or any attribute in course object |
| includes | the query that uses the search command | a string that is an value in course data (e.g CS 2110, MQR-AS) |
| fulfilledBy | the metric that tracks the requirement completion progress | credits, courses, or self-check |
| minCount | the minimum number of fulfilledBy count | any positive integer |
| progressBar | whether this requirement should be the one requirement displayed in the progress bar | boolean |

The `includes` attribute has its own logic that uses nested arrays. The outer array lists all possible requirement queries, and the nested array allows for options. For example `[["CS 1110"], ["CS 2110", "CS 2112"]]` means that satisfying the requirement means both having CS 1110 and CS 2110 or CS 2112 on the board.

0 comments on commit 3c6a3ec

Please sign in to comment.