This application is a work in progress. It uses Flask server with a React JS client. The application is actively being developed and improved.
Homeless shelters rely on volunteers' help. When inclement weather strikes, homeless shelters get filled with people that need a place to stay, and volunteers' help becomes even more important. There are many people willing to volunteer, but knowing which shelter lacks help is a challenge. The purpose of this application is to simplify the process of scheduling work shifts for volunteers, and to give homeless shelters visibility into their upcoming staffing. The application allows volunteers to select shelters and times when they want to work, see which shelters (and which times) urgently need help, and cancel/reschedule their shifts.
The first time you want to run this code, you will need to:
- Clone the repository:
git clone https://github.com/oss-slu/shelter_volunteers.git - Install server dependencies:
cd serverpython3 -m venv venv- Activate virtual environment:
- On Mac or Linux:
source venv/bin/activate - On Windows:
source ./venv/Scripts/activate
- On Mac or Linux:
pip3 install -r requirements.txt
- Install client dependencies:
cd ../client_appnpm installcd ..
- Configure environment variables:
- Create
server/.env.pre-productionand add the following values:MONGODB_HOST=<Atlas connection string without credentials> MONGODB_USERNAME=<MongoDB username> MONGODB_PASSWORD=<MongoDB password> GOOGLE_CLIENT_ID=<Copy the value of REACT_APP_GOOGLE_CLIENT_ID from client_app/src/config.js> JWT_SECRET=<Any long random string> - If you do not already have a MongoDB Atlas cluster, follow the MongoDB Atlas setup guide to create one and capture the connection string.
- Keep this file local—do not commit it to the repository.
- Create
On all subsequent runs, you will need to:
-
Run the Flask API server:
cd server- Activate virtual environment:
source venv/bin/activate(orsource ./venv/Scripts/activateon Windows) bash run_dev_server.sh- The API is available at
http://localhost:5001
-
Run the React client (in a separate terminal):
cd client_appnpm start- The client is available at
http://localhost:3000
We welcome contributions of all sizes. Before opening a pull request:
- Read the contributing guide for coding standards, commit conventions, and review expectations.
- Pick an existing issue or create a new one describing the change you plan to make.
- Develop your work on a feature branch, add or update tests as needed, and open a pull request when ready.
The contributing guide also covers how to report bugs and propose new features.