The Volunteer Core project is a web app that assists in better management of Volunteer Core operations. It will track and provide matching suggestions of volunteer partners, opportunities for volunteers, and volunteers. Later features could include communications to build out functionality similar to a CRM.
This setup is for use with local development only; production instructions will be included later. Do not use these instructions in production without turning off debug and resetting the SECRET_KEY in the .env variables.
You will need git to clone this repo.
For the backend you need python 3, venv, pip, and SQLite installed. Depending where you get Python from, venv may already be included with Python.
For the front end you need NodeJS + npm
Clone the repo and cd into the created directory
python3 -m venv venv
source venv/bin/active
pip install -r requirements.txt
cp config.env.template .env
flask db upgrade
- Create the admin user:
flask auto-setup
flask run
- You can later end the app with ctrl + c.
- Open a second terminal and cd into into your-dir/client
npm install
npm start
- You can later end the app with ctrl + c.
This repo includes both the backend and frontend source for simplification of server requirements. If you would like to split the two apart, the frontend is contained in the client/ directory.
This documentation is currently aimed at hosting on Heroku but can be set up in other production environments. If you succeed in other production setups please document the process and make a pull request to add to this documentation.
- Create an account on Heroku and install and set up the Heroku CLI.
- If you haven't already, clone ths repo and cd into the directory
- Create the Heroku Dyno
heroku create
- You can specify the dyno name with
heroku create mydynoname
- You can specify the dyno name with
- Add the free Heroku Postgres addon
heroku addons:create heroku-postgresql:hobby-dev
- Push the heroku-production branch to your Heroku Dyno
git push heroku heroku-production:master
- In the final lines of the push to Heroku you should see a confirmation release number and a link to the deployed Heroku app.
- Go to the Heroku app url and login with the default admin account (user:admin, password:password). Go to the dashboard and edit the admin user to change the admin password.
If you want to build the frontend yourself, rather than using the prebuilt heroku-production branch, you can make and checkout a branch and run npm run build
. This will generate a build directory with the static frontend files. Alter the .gitignore file in client/ to allow git tracking of the build/ directory. Then commit the changes adding the build/ directory and files. Now push your branch Heroku heroku addons:create your-branch-name:hobby-dev
We welcome new contributors. Be sure to check out the guide on contributing, which includes instructions on how to fork, clone, branch, commit, pull request and sync your fork.
Not sure where to start? Look for open issues on GitHub, or message the team on our Slack site. If you aren't on our Slack, click here for an invite.
TL;DR Contribution Workflow:
- Fork this repository and Clone your fork locally.
- Checkout a new branch on which to make your changes.
- Make edits. Try to match existing coding style.
- Test your changes.
- Commit your changes. Push your changes to your fork on GitHub.
- Submit a new pull request and your changes will be reviewed and merged.
We encourage you to open up an issue if you have any feedback, suggestions, bugs or just have a question on where to start.
MIT, see LICENSE for full license.