A project to:
- first build a clone of the page https://my.sa.ucsb.edu/public/curriculum/coursesearch.aspx
- then build many additional features using the same data.
This is a brownfield project, i.e. a project that is continued over multiple terms. It was started in F19, worked on in S20, and will continue in F20.
If you are a student in CS56, you can get an API key from your mentor.
Mentors, can get API keys by visiting https://developer.ucsb.edu/.
Once you have the API key, you need to do this:
-
Copy
localhost.json.SAMPLE
tolocalhost.json
. -
Edit
localhost.json
and put in the correct value of the key. -
Each time you fire up a terminal window to run the app, you need to do
source env.sh
That will define
SPRING_APPLICATION_JSON
to have the extra values defined inlocalhost.json
-
Then run
mvn spring-boot:run
-
Google OAuth client-id and client-secret
- Obtain following these instructions https://ucsb-cs56.github.io/topics/oauth_google_setup/
-
UCSB API key
- Obtain from UCSB-CS56 course staff
- Or, obtain a key from https://developer.ucsb.edu/ with access to the Academic
Curriculums API
-
MongoDB username/password for ArchivedCourseData
- Obtain from UCSB-CS56 course staff
- Or, set up your own Mongo DB database using the scripts
in https://github.com/ucsb-cs56-w20/ucsb-courses-search-support-scripts
- If you do this, you also need to override the connection string
that is defined in
application.properties
- If you do this, you also need to override the connection string
that is defined in
-
If there are feature flag values in the localhost.json.SAMPLE, you may choose the value appropriate to the feature(s) you are working on.
For example, if there is a feature flag
"app.feature.multiple_schedules":"false"
you may want to set that totrue
if you are working on that feature. Otherwise, you can leave it as false. These values are typically set to false inapplication.properties
anyway, so you can typically also just delete those lines in yourlocalhost.json
orheroku.json
.
Type this | to get this result |
---|---|
mvn package |
to make a jar file |
mvn spring-boot:run |
to run the web app |
Value | Sample Value | Explanation |
---|---|---|
app.start_quarter |
S20 |
The first quarter shown in quarter selection menus. |
app.end_quarter |
F17 |
The last quarter shown in quarter selection menus |
The order given is the order in which the quarters appear in the menus. If they are given in reverse order, the orders will be reversed.
For example if start is S20 and end is F17, the quarters will appear in reverse chronological order. If start is F17 and end is S20, they will appear in chronological order.
The oldest quarter for which data is available is F83