-
Obtain a license (free for CSE students) and download Vmware Fusion Pro (mac) or Vmware Workstation Pro/player (windows) here
-
Download and run the prebuilt VM available here. Password for VM is
COMP9323
If you have issues installing or using the VMWare software, then use VirtualBox as a free alternative.
- NPM and node.js
- yarn
- Python v3.8.5 (+ pip and virtualenv)
- In /frontend run
yarn install
- In /server run
make install
- Ensure API keys have been loaded as described below.
- run
make migrate
(one time) followed bymake run
. Server should be running on port 5000. See swagger docs at http://127.0.0.1:5000/ - To run tests:
make tests
- To squash DB:
make squash
. You must then runmake migrate
again to re-initialise DB.
- Run
yarn dev
. Frontend should be running on http://localhost:3000
Two env files are requied. One for frontend, and one for backend.
In the /frontend folder, create a file named .env
:
├── frontend
│ └──.env
Contents of frontend/.env
:
REACT_APP_YT_KEY="XXXXXXXXXX"
REACT_APP_NEWSAPI_KEY="XXXXXXXXXX"
REACT_APP_UNPAYWALL_EMAIL="XXXXXXXXXX"
In the /server folder, create a file named server.env
:
├── server
│ └── server.env
Contents of server/server.env
:
IBM_WATSON_API_KEY="XXXXXXXX"
IBM_WATSON_URL="XXXXXXXX"
MEANING_CLOUD="XXXXXXXX"
OXFORD_API_KEY="XXXXXXXX"
OXFORD_ID="XXXXXXXX"
SCIENCE_PARSE_URL="http://SPV1-Scienc-C3GW28LU2S2X-1391134067.eu-north-1.elb.amazonaws.com/v1"
- REACT_APP_YT_KEY: API key for youtube Getting a key
- REACT_APP_NEWSAPI_KEY: API key for newsapi.org Get a key
- IBM_WATSON_API_KEY and IBM_WATSON_URL: Get a key
- MEANING_CLOUD: Get a key
- OXFORD_API_KEY and OXFORD_ID: Get a key
- REACT_APP_UNPAYWALL_EMAIL (Any email address)
- Backend boilerplate used from here
- Scientific paper parsing library used for parsing PDFs. Taken from here which is our fork of science-parse. Due to high resource usage and operational overhead required to provide a reliable local instance, it has been deployed here on a load balanced AWS ECS service.
- The highlight models and endpoints were initially used to store manual and automatic highlights as well as a user's notes. However our vision of the project changed as we progressed so the idea was scrapped but the endpoints still exist in the backend. We decided to leave this endpoint as it is since it could be used for any possible future features that may relate to this idea