A web app for Cornell students to read and write reviews for Cornell classes, allowing a common platform for students to get advice and suggestions for picking classes. In other words, a rate my classes, but for Cornell University.
-
Clone the code:
git clone https://github.com/cornell-dti/course-reviews-react-2.0.git
-
Add the MongoDB connection inside
server/.env
:MONGODB_URL=see-notion-page
This would be only the staging DB, only Leads have access to production.
-
Now that you have the database configured, make sure you have Yarn installed.
-
Start the local environments.
# At Root (./cureviews/): yarn # installs dependencies in package.json & lock file
yarn server # starts server
yarn client # starts client
You can access the app at [http://localhost:3000].
If you need features which use admin access, you need to create an entry in the students
collection which has you flagged as an admin user. We should have done this when you joined the team.
Last updated 09/13/2023.
You will probably use the address of the staging server. If, for some reason you want to have a local db (E.g. you're making some changes to the db structure, and don't want to accidently trash the staging db), the following works:
Running using local mongodb server
Option 1:
Previously, you would start a server like so:
MONGODB_URL='mongodb://foo' yarn workspace server start
There is also something called "fallback mode", which you can trigger by starting the server with the ALLOW_LOCAL env variable set to 1, and without setting MONGODB_URL. Fallback mode automatically configures a blank mongodb for use in the application, and then scrapes some data from Cornell's endpoint for you to test. There will not be any reviews by default.
ALLOW_LOCAL=1 yarn workspace server start
Option 2:
If you really, really do want to use a local Mongo instance using mongod (not recommended), this might work:
You need the mongodb database tools and server installed. They are available here and here. If, for some reason, you want to use the tools on a linux box, you will probably have to build them from source here.
mkdir mongo # create a directory for mongo to dump its files in
mongod --dbpath mongo/ --port 3001 # launch the mongo server on localhost:3001
Set your MONGODB_URL
to mongodb://localhost:3001
You will probably want to restore some collections from a bson, in which case you should, in a new terminal:
mongorestore -h 127.0.0.1 --port 3001 -d test /path/to/your/bson.bson --drop
You will probably need to run this for the classes
, subjects
and reviews
collections (Perhaps also students
). Ask a team member for the bsons if you need them. If this errors, it might be because the -d test
specifies the wrong database name (test
), in which case you should figure out your db name, and replace -d test
with -d dbname
. Note that it won't error on the command, the only evidence of an error is that none of collections will be show up on the site (i.e. no classes visible).
- Node.js v10 - Node.js provides the basis for our server. It handles external connects and gives us access to an vast array of useful packages via Node Package Manager (NPM)
- Express v4.17.1 - The package for running the web server.
- React v16.13.1 - We use React to help us create a component-based site. Using components allow us to re-use code more efficiently and modify their implementation more quickly
- Jonathan Kim - Product Manager
- Megan Yap - Associate Product Manager
- Will Zhang - Technical Product Manager
- Andrea Thia - Designer
- Valerie Wong - Designer
- Erica Lee - Designer
- Julie Jeong - Developer Advisor
- Helen Lei - Developer
- Andrew Qian - Developer
- Jacqueline Cai - Developer
- Jaeyoung Lee - Product Marketing Manager
- Harrison Chin - Coach
- Jonathan Kim - Product Manager
- Will Zhang - Technical Product Manager
- Michelle Li - Developer Advisor
- Harrison Chin - Developer
- Samuel Yeboah - Developer
- Helen Lei - Developer
- Andrea Thia - Designer
- Tina Ou - Product Manager
- Maywa Padungrat - Associate Product Manager
- Michelle Li - Technical Product Manager
- Jack Farley - Developer
- Ankit Lakkapragada - Developer
- Miranda Yu - Product Marketing Manager
- Tina Ou - Product Manager
- Akash Aryal - Technical Product Manager
- Andrew Gao - Developer
- Julie Jeong - Developer
- Jack Farley - Developer
- Michelle Li - Developer
- Ankit Lakkapragada - Developer
- Maywa Padungrat - Product Designer
- Larrisa Chen - Product Designer
- Angela Chen - Product Manager
- Julian Londono - Technical Project Manager
- Luis Hoderlein - Technical Project Manager
- Dray Farley - Developer
- Akash Aryal - Developer
- Julie Jeong - Developer
- Tanay Menezes - Developer
- Julian Londono - Technical Project Manager
- Adam Masters - Product Manager
- Jessica Chen - Developer
- Dray Farley - Developer
- Akash Aryal - Developer
- Luis Hoderlein - Developer
- Erin Chen - Designer
- Flora Liu - Designer
- Julian Londono - Project Manager
- Adam Masters - Project Manager (in transition)
- Jessica Prague - Project Manager
- Jessica Chen - Developer
- Dray Farley - Developer
- Bryan Graeser - Developer
- Erin Chen - Designer
- Jesse Mansoor - Designer
- Brooke Docherty - Product Manager
- Divyansha Sehgal - Product Manager
- Jessica Chen - Developer
- Julian Londono - Developer
- Vinisha Mittal - Developer
- Jesse Mansoor - Designer
- Jessica Prague - Designer
We are a team within Cornell Digital Tech Innovation. For more information, see our website here.