Modern web application for tracking climate action progress across Canadian municipalities
Live Demo (Legacy): https://cpsc405.joeyfishertech.com (Grafana-based system) Status: π§ In Development Timeline: 4 weeks (January-February 2025)
A comprehensive web platform for Quest Canada to manage climate action assessments, track community projects, monitor funding sources, and visualize progress with interactive dashboards.
- π Authentication & Multi-Tenancy - Secure login with role-based access for multiple communities
- π Interactive Dashboards - Embedded Apache Superset visualizations
- π Data Management - Complete CRUD for assessments, projects, funding, and milestones
- π€ AI-Powered Data Entry - Upload PDF reports, Claude AI extracts structured data
- π Benchmark Tracking - Quest Canada's 10-indicator framework built-in
- π° Funding Tracker - Multi-source funding management and gap analysis
- π Project Milestones - Timeline tracking with dependencies
- π PDF Reports - Automated report generation with custom branding
- React 18+ with TypeScript
- Shadcn UI component library
- Tailwind CSS for styling
- React Router for navigation
- TanStack Query for state management
- @superset-ui/embedded-sdk for dashboard embedding
- Node.js 20+ with Express.js
- Prisma ORM for type-safe database access
- JWT authentication
- Anthropic Claude API for AI extraction
- PostgreSQL 14+
- 10 tables with comprehensive relationships
- Multi-tenancy with row-level security
- Apache Superset 3.x (Docker)
- Guest token authentication
- Embedded dashboards with RLS
- Nginx reverse proxy
- Proxmox LXC container hosting
- Cloudflare SSL
- GitHub Actions CI/CD
quest-canada-web-app/
βββ docs/ # All planning documentation
β βββ planning/ # Implementation plan, setup guides
β βββ database/ # Prisma schema, seed data, DB docs
β βββ superset/ # Superset integration guides
β βββ ai-extraction/ # AI service design, prompts
βββ src/ # Source code (to be added)
β βββ app/ # Open SaaS Wasp application
β βββ client/ # React frontend
β βββ server/ # Node.js backend
β βββ shared/ # Shared types
βββ superset/ # Apache Superset configuration
βββ README.md # This file
- Implementation Plan - Complete 4-week roadmap
- Open SaaS Setup Guide - Boilerplate installation
- Open SaaS Research - Technology evaluation
- Database Schema - Prisma schema (10 tables)
- Seed Data - Demo data for 3 communities
- Database Documentation - Complete reference
- Superset Integration Guide - Embedding docs
- Docker Compose - Superset deployment
- Configuration - Production config
- AI Service Design - Architecture
- Prompt Templates - Claude prompts for extraction
- JSON Schemas - Validation schemas
- API Specification - OpenAPI spec
- Node.js >= 22.12
- Docker Desktop (for PostgreSQL & Superset)
- Wasp CLI (for Open SaaS)
- Git
# 1. Clone repository
git clone https://github.com/fisherjoey/quest-canada-web-app.git
cd quest-canada-web-app
# 2. Install Wasp CLI (if not installed)
curl -sSL https://get.wasp-lang.dev/installer.sh | sh
# 3. Initialize Open SaaS (coming soon)
# wasp new quest-canada-app -t saas
# cd quest-canada-app
# 4. Install dependencies
# npm install
# 5. Setup database
# npm run db:setup
# 6. Start development
# wasp startSee .env.example for required configuration.
- Research Open SaaS boilerplate
- Design database schema with Prisma
- Plan Apache Superset integration
- Design AI extraction service
- Create comprehensive documentation
- Initialize Open SaaS boilerplate
- Setup PostgreSQL with Prisma
- Configure authentication
- Implement multi-tenancy
- Deploy Apache Superset
- Build assessment CRUD forms
- Build project management interface
- Build funding tracker
- Build milestone manager
- Create dashboard layouts
- Create Superset dashboards
- Implement dashboard embedding
- Configure Row-Level Security
- Test multi-tenancy filtering
- Implement file upload service
- Integrate Claude API
- Build chat interface
- Create review/approval workflow
- Test with sample reports
- Implement PDF report generation
- Build admin panel
- Mobile responsive testing
- Deploy to LXC 101
- User training documentation
The current production system uses Grafana + Flask + PostgreSQL:
- Repository: Quest Canada Gap Analysis (if separate repo)
- Production: https://cpsc405.joeyfishertech.com
- Stack: Grafana 12.2.0, Python Flask, PostgreSQL 14
- Status: Operational, will be replaced by this web app
Developer: Kaden Rothlander Course: CPSC 405 Software Entrepreneurship / ENTI 415 Software Venturing Institution: University of Calgary Term: Fall 2025 Partner: Quest Canada
[Add license information]
For questions or issues, please open a GitHub issue or contact the development team.
Last Updated: January 2025 Version: 0.1.0-alpha Status: Planning Complete, Implementation Starting