Skip to content

CivicWeave is a volunteer relationship management system (Volunteer CRM) designed to connect people with causes. It manages intake, recruitment, skill-based matching, performance tracking, and re-engagement — powered by data and lightweight ML.

License

Notifications You must be signed in to change notification settings

aawadall/civic-weave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

152 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CivicWeave MVP

A volunteer management platform for connecting volunteers with civic initiatives.

Architecture

  • Backend: Golang + Gin framework (REST API)
  • Frontend: React + Vite + React Router
  • Database: PostgreSQL + Redis
  • Auth: JWT with dual support (email/password + Google OAuth)
  • Email: Mailgun integration
  • Infrastructure: GCP (Cloud Run, Cloud SQL, Memorystore)

Quick Start (Local Development)

  1. Prerequisites:

    • Docker & Docker Compose
    • Go 1.21+
    • Node.js 18+
    • Terraform (for infrastructure)
  2. Setup:

    # Clone and start services
    git clone <repo-url>
    cd CivicWeave
    
    # Start local development environment
    make dev-up
    
    # Initialize database
    make db-migrate
    
    # Seed admin user
    make db-seed
  3. Access:

Development Commands

make dev-up          # Start all services
make dev-down        # Stop all services
make db-migrate      # Run database migrations
make db-seed         # Seed initial data
make test           # Run tests
make lint           # Run linters

Project Structure

/
├── backend/         # Golang API server
├── frontend/        # React SPA
├── infrastructure/  # Terraform configs
├── shared/         # Shared types/schemas
└── docker-compose.yml

Deployment

GCP Project Setup (One-time)

  1. Set up new GCP project:

    make setup-gcp

    This creates a new GCP project, enables APIs, and generates secure configuration.

  2. Update API keys in infrastructure/terraform/terraform.tfvars:

    • Mailgun API key and domain
    • Google OAuth client credentials
  3. Deploy infrastructure:

    make deploy-infra
  4. Build and deploy applications:

    make build-push
    make deploy-app

See infrastructure/terraform/README.md for detailed deployment instructions.

Contributing

  1. Create feature branch from main
  2. Make changes
  3. Test locally with make test
  4. Submit pull request

License

MIT

About

CivicWeave is a volunteer relationship management system (Volunteer CRM) designed to connect people with causes. It manages intake, recruitment, skill-based matching, performance tracking, and re-engagement — powered by data and lightweight ML.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published