Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge current changes #1

Open
wants to merge 53 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
c3c3859
Merge pull request #65 from kotIIT/master
kotIIT Dec 2, 2019
bc5b734
add example url for reddit
meltingscales Dec 2, 2019
b5d09f2
Merge branch 'master' of github.com:Team-Bowser-ITMS-448/ITMS448-osin…
meltingscales Dec 2, 2019
73385c4
Merge pull request #66 from HenryFBP/master
meltingscales Dec 2, 2019
f3de4d1
updated routes for reddit configure page
jbsummoner Dec 3, 2019
34012ad
updated 4chan routes
jbsummoner Dec 3, 2019
1a86cb1
created configure page
jbsummoner Dec 3, 2019
9d414e7
created reddit actions and state and modularized the store
jbsummoner Dec 3, 2019
c62f3ce
updated fetch helper
jbsummoner Dec 3, 2019
a3c1362
added reddit dashboard route
jbsummoner Dec 3, 2019
ac10edf
created a more precise expression for active route classes
jbsummoner Dec 3, 2019
cb32fb8
updated 4chan form to use new /api/4chan routes
jbsummoner Dec 3, 2019
e10f7f0
updated 4chan form to be full width for md and up screens
jbsummoner Dec 3, 2019
dde840b
made the material component more configurable
jbsummoner Dec 3, 2019
9797fc2
created the reddit dashboard
jbsummoner Dec 3, 2019
e411b4c
updated production host
jbsummoner Dec 3, 2019
d475d90
updated host env vars
jbsummoner Dec 3, 2019
2ab90f8
updated form host input size
jbsummoner Dec 3, 2019
4862e59
updated reddit dashboard route icon
jbsummoner Dec 3, 2019
f4d83cd
updated 4 chan boards
jbsummoner Dec 3, 2019
3155219
changed configure page title
jbsummoner Dec 3, 2019
3098511
Merge pull request #67 from jarronb-iit/master
jbsummoner Dec 3, 2019
c576733
added notification to gloabal state
jbsummoner Dec 3, 2019
9064fe5
fixed button state
jbsummoner Dec 3, 2019
c4925b4
Merge pull request #68 from jarronb-iit/master
jbsummoner Dec 3, 2019
ffcffc2
update client readme
jbsummoner Dec 3, 2019
c4c32a7
update reddit form to dashboard
jbsummoner Dec 3, 2019
2ed211a
Merge pull request #70 from jarronb-iit/master
jbsummoner Dec 3, 2019
b28a8b5
Update README.md
meltingscales Dec 3, 2019
a564517
Merge pull request #71 from Team-Bowser-ITMS-448/HenryFBP-patch-2
meltingscales Dec 3, 2019
c28ce35
save example data analysis files to disk
meltingscales Dec 4, 2019
0895bad
ignore output png files
meltingscales Dec 4, 2019
a12002d
Merge branch 'master' into master
meltingscales Dec 6, 2019
e3d14ee
show users site on Heroku, not api
meltingscales Dec 9, 2019
965e48d
Merge pull request #72 from HenryFBP/master
meltingscales Dec 9, 2019
30ecaad
update readme with info about DO and npm
meltingscales Jun 3, 2020
82151a7
add script to generate the node site
meltingscales Jun 3, 2020
2c50502
use pushd popd in run-web-api.sh
meltingscales Jun 3, 2020
5813ef7
allow editing host and port
meltingscales Jun 3, 2020
4114f9f
update packages
meltingscales Jun 3, 2020
5a4bb9c
fix formatting in node readme
meltingscales Jun 3, 2020
4ed7021
add images
meltingscales Jun 3, 2020
cb25a75
add TODO for hardcoded badness
meltingscales Jun 3, 2020
2f32991
test commit
meltingscales Jun 3, 2020
eae2c29
Revert "test commit"
meltingscales Jun 3, 2020
4b351d5
Merge pull request #73 from HenryFBP/master
meltingscales Jun 3, 2020
82755b9
add final pres
meltingscales Sep 16, 2020
ae3e00b
Merge branch 'master' of github.com:HenryFBP/ITMS448-osint-dashboard
meltingscales Sep 16, 2020
82aabaa
rename final pres
meltingscales Sep 16, 2020
dd77a6c
mention final presentation in readme
meltingscales Sep 16, 2020
1b84e47
give final pres good name
meltingscales Dec 9, 2020
71cff13
fix roles
meltingscales Dec 9, 2020
4fdd928
fix roles again
meltingscales Dec 9, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
__pycache__/
*_cache.sqlite
out/
*.out.png
.coverage
.vscode/

Expand Down
Binary file added .screenshots/screen1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .screenshots/screen2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .screenshots/screen3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
34 changes: 25 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,18 @@ The project's name is Bowser, named after [Mary Bowser](https://en.wikipedia.org

We are focusing on domestic terrorism.

## Presentation

[You can view our final presentation PDF here.](final-presentation.pdf)

## Images

![](.screenshots/screen1.png)

![](.screenshots/screen2.png)

![](.screenshots/screen3.png)

## Setup

Clone or download this repository.
Expand Down Expand Up @@ -44,13 +56,13 @@ Edit the end of `bowser.py` to make larger CSV files or gather from different bo

#### Web UI

`cd client` and run `npm build`.
`cd client` and run `npm run-script build`.

This generates JS and HTML that will be served under `0.0.0.0:1839/` as Flask static files.
This generates JS and HTML that will be served under `0.0.0.0:1839/` as Flask static files, when Flask is running.

Alternatively, you can run `npm start` if you wish to run the web UI under Node.js.

#### Web API/Alternate Web UI
#### Web API/Static web interface

`cd bowser`

Expand All @@ -60,15 +72,19 @@ This will start an HTTP API on <http://0.0.0.0:1839/api>.

Also, a web UI from Node.js static files will be served on <http://0.0.0.0:1839/>.

This web UI must be built using `npm` as described in the "Web UI" section.

##### Heroku instance

Alternatively, <http://bowser-webapi.herokuapp.com/api> can be used if you need to access it over the internet and not locally.
Alternatively, <http://bowser-webapi.herokuapp.com> can be used if you need to access it over the internet and not locally.

The Heroku app may fail due to Cloudflare WAF blocking Heroku's IPs. Running it locally should prevent this.

##### DigitalOcean instance

<http://bowser-web-app.freemyip.com:1839> can be used with no restrictions to browse a live version of our project. Try going to `/api`!
<strike><http://bowser-web-app.freemyip.com:1839> can be used with no restrictions to browse a live version of our project. Try going to `/api`!</strike>

The DigitalOcean instance was shut down as I (Henry P) have graduated and do not want to pay for it. Please run it yourself if you want to use this project.

### The scrapy test

Expand Down Expand Up @@ -126,19 +142,19 @@ Role: DevOps Engineer

### Cooper Van Kampen

Role: Machine Learning AI Cloud Malware Devloper (Agile)
Role: Cloud Developer, Backend Developer

### Daniel Denekew

Role: Analysts - Big Data Generate Development
Role: Data Analyst

### Rawad Alahmadi

Role: Project Assistant, Machine Language Data Scientist
Role: Assistant Project Manager, Data Analyst

### Robert Bacius

Role: Cloud AI Data Analysis
Role: Data Analyst

## Extra Documentation

Expand Down
12 changes: 7 additions & 5 deletions bowser/bowserHTTPAPI.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ def index():
"route-url": url_for("routes"),
"example-urls": [
(url_for('generate_csv') + "?boards=x,pol&flaggers=NSA_PRISM,TERRORISM&start_page=3&stop_page=10"),
(url_for('generate_json') + "?boards=pol,s4s,x&flaggers=NSA_ECHELON,RACISM&start_page=1&stop_page=3")
(url_for(
'generate_4plebs_json') + "?boards=pol,s4s,x&flaggers=NSA_ECHELON,RACISM&start_page=1&stop_page=3"),
(url_for('generate_reddit_json') + '?subreddit=Sino'),
]
})

Expand Down Expand Up @@ -196,7 +198,7 @@ def generate_reddit_json():
'thread_list': threadlist})


def _generate_csv_string(boards: str, flaggers: str, start_page: str, stop_page: str) -> str:
def _generate_csv_string_4plebs(boards: str, flaggers: str, start_page: str, stop_page: str) -> str:
boardsDesc = "The boards on 4chan you wish to gather from."
boards = unpack_http_get_list(boards)
boards = parameter_blacklist(boards, 'boards', boardsDesc)
Expand Down Expand Up @@ -237,7 +239,7 @@ def generate_csv():
start_page = request.args.get('start_page', None)
stop_page = request.args.get('stop_page', None)

csvString = _generate_csv_string(
csvString = _generate_csv_string_4plebs(
boards=boards,
flaggers=flaggers,
start_page=start_page,
Expand All @@ -254,8 +256,8 @@ def generate_csv():


@app.route("/api/generate/4chan/json", methods=['GET'])
def generate_json():
csvString = _generate_csv_string(
def generate_4plebs_json():
csvString = _generate_csv_string_4plebs(
boards=request.args.get('boards', None),
flaggers=request.args.get('flaggers', None),
start_page=request.args.get('start_page', None),
Expand Down
4 changes: 2 additions & 2 deletions client/.env.development
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
REACT_APP_EXAMPLE="hi from dev"
REACT_APP_BOWSER_API_URL="http://0.0.0.0:1839/generate/csv?boards=x,pol&flaggers=NSA_PRISM,TERRORISM&start_page=1&stop_page=2"
REACT_APP_JARRON_API_URL="http://192.168.2.11:1839/generate/csv?boards=x,pol&flaggers=NSA_PRISM,TERRORISM&start_page=1&stop_page=2"
REACT_APP_BOWSER_API_HOST="http://0.0.0.0"
REACT_APP_BOWSER_API_HOST="http://bowser-web-app.freemyip.com"
REACT_APP_BOWSER_API_PORT="1839"
REACT_APP_JARRON_API_HOST="http://192.168.2.11"
REACT_APP_JARRON_API_HOST="http://bowser-web-app.freemyip.com"
REACT_APP_JARRON_API_PORT="1839"
2 changes: 1 addition & 1 deletion client/.env.production
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
REACT_APP_BOWSER_API_HOST="http://206.189.77.214"
REACT_APP_BOWSER_API_HOST="http://bowser-web-app.freemyip.com"
REACT_APP_BOWSER_API_PORT="1839"
16 changes: 14 additions & 2 deletions client/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## Description

This application utilizes:

- [Material UI](material-ui.com/)
- [Formik](https://jaredpalmer.com/formik/)
- [Yup](https://github.com/jquense/yup)
- [React Chartkick](https://chartkick.com/react)
- [Easy Peasy State Management](https://easy-peasy.now.sh)<br/>

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).

## Available Scripts
Expand All @@ -19,10 +29,12 @@ See the section about [running tests](https://facebook.github.io/create-react-ap

### `npm run build`

Builds the app for production to the `build` folder.<br />
Builds the app for production to the `build` folder.

It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.<br />
The build is minified and the filenames include the hashes.

Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
Expand Down
Loading