A Hack4Impact UIUC project.
Collective Liberty collects and analyzes data to assist with stopping human trafficking. Founded in 2018, this Texas and DC-based organization develops new tactics -- including new litigation approaches, innovative law and code enforcement tactics, and policy change -- that makes it difficult for traffickers to continue to operate. They work with law enforcement, public policy advocates, survivors, and social service organizations by providing them with data, intelligence, and best practices while leveraging technology and machine learning to do so.
One of the ways they hope to scale is expanding to the general public in an informative and engaging manner. Collective Liberty currently has no public-facing products that can educate everyday people on human trafficking and how to support efforts combatting them. Additionally, while Collective Liberty currently relies on funding and support from the Texas governor’s office, prize money, individual donors, and fundraisers, a public-facing app could garner additional interest in donations or advocacy
Rebecca Xun Product Manager |
Kendall Hester Tech Lead |
Siraj Chokshi Product Designer |
Anooj Lal Software Developer |
Albert Cao Software Developer |
Kelly Dunleavy Software Developer |
Luciana Toledo-López Software Developer |
Ayan Mallik Software Developer |
This project uses docker-compose to run the backend and database locally and concurrently to run everything at once.
To get a copy of the project, go into your terminal and run:
$ git clone https://github.com/hack4impact-uiuc/collective-liberty.git
We use external integrations with Google OAuth and Mapbox, both of which require special keys to access their services.
These keys, along with other information, are stored in .env
files. Both /api
and /client
contain their own .env
file.
AUTH_CLIENT_ID=
AUTH_CLIENT_SECRET=
SESSION_SECRET=
API_PORT=5000
MONGO_URI=mongodb://db:27017
TEST_CLIENT_HOST=http://localhost:3000
AUTH_CALLBACK_URI=http://localhost:5000/api/login/callback
AUTH_CLIENT_ID
and AUTH_CLIENT_SECRET
can be retrieved from the Google API Console. Check out this tutorial for more information.
MONGO_URI
currently points to a local docker instance. To point to a cloud host, simply replace the connection string.
REACT_APP_MAPBOX_API_KEY=
REACT_APP_TEST_API_HOSTNAME=http://localhost:5000
Create a Mapbox account to obtain an API key.
First ever run @ /
:
$ yarn && yarn start
Start up project @ /
:
$ yarn start
To separately start up backend @ /
:
$ docker-compose up
Stop backend @ /
:
$ docker-compose down
Stop backend and remove volumes (old data) @ /
:
$ docker-compose down -v
Make sure that Docker Desktop is running in the background before running any commands.
- React for creating a single page application.
- Mapbox for the map view.
- Deck.gl to display dynamic layers on top of original map.
- Tailwind CSS for convenient prototyping.
- react-chartjs-2 for dynamic charts.
- Express.js for creating a web server.
- Mongoose to connect to and manipulate MongoDB database.
- Helmet.js to auto-add security headers.
- fast-csv to parse incoming CSV.
- Passport.js for authentication with Google.
- express-session for handling user sessions.
- multer for handling uploads.
MIT licensed · © 2020 Hack4Impact UIUC