Evidential is an app to help researchers analyze and rate the arguments made within texts for various claims those texts attempt to support. A slightly more robust summary is taken from the splash page:
Evidential is here to help researchers understand and analyze written works—books, journal articles, essays, opinion pieces—whatever type of text that makes a claim and then tries to back it up with additional arguments (evidence).
The purpose is to create a space to collaboratively rate the arguments against the claims in a text, building a body of metadata to profile how much a text covers a particular claim and its arguments, as well as how effectively it covers those things.
- Users: Signup, login, logout, password protected edit and (soft) delete, track change history of all things except user and text.
- Texts: View, upload, and limited edit/delete (only user who uploads and only until first analysis has been ran, after which text will be locked)
- Claims: View (Upcoming: add, edit, assign to texts [analyze])
- Arguments: View (Upcoming: add, edit, assign to claims)
- Hit Keys: View (Upcoming: add, edit, assign to claims)
- Ratings: (Upcoming: view, add, edit)
- Profile: (Upcoming: statistics based off ratings and text/claim combos)
For those interested in development and testing purposes, follow these step-by-step guidelines to run the app locally.
To run this application locally you will need Git, node.js (and its package manager that comes with it, npm), python 3.9, and a PostgreSQL database.
# Clone this repository
$ git clone https://github.com/scottgit/evidential.git
- Create a database named evidential_dev and an owner named evidential_app with a password
- Create .env file at the root of this project, add environment variables provided in .env.example to .env file (make sure the database URL is set correctly)
- Create a second .env file under the react-app directory with the needed REACT_APP_TINY_API key set to your api key from https://www.tiny.cloud/.
# At the root of the repository, install backend dependencies
$ pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
# Still at root, open up the virtual environment shell, migrate and upgrade database tables and seed data.
$ pipenv shell
$ flask db migrate
$ flask db upgrade
$ flask seed all
# Change into the react-app directory, install frontend dependencies
$ npm install
# Inside the react-app directory, start the frontend server
$ npm start
# Change to the root directory and start the backend server
# If you are still inside your virtual environment shell, then just do...
$ flask run
# Otherwise, if you exited the shell, then...
$ pipenv run flask run
The frontend of the application should open up in your browser from localhost:3000, while it is being served on the backend from localhost:5000
This is not an exhuastive list, but a highlight of some of the main technologies and extra plugins used witihin the app.
- PostgreSQL
- Flask
- Database support: flask-sqlalchemy
- Convert pdf support: pdfminer.six
- URL request support: requests
- React
- Selection search support (various uses on site): react-select
- File upload support (for Text creation): react-dropzone
- Icons fontawesome with react
- Modal support: react-modal
- Other
This repo is currently a student portfolio project, and not likely to be modified. However, if you still think you have a contribution to make, then give it go:
- Clone repo
$ git clone https://github.com/scottgit/evidential.git
- Create a new branch:
$ git -b name_of_branch
- Make changes
- Submit a Pull Request with description of changes for discussion and review
- Scott Smith - https://github.com/scottgit