Skip to content

A public commenting platform providing transparency for local governments.

License

Notifications You must be signed in to change notification settings

MetaPhase-Consulting/opencomments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

160 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenComments

License: MIT Open Source CivicTech Built by MetaPhase LinkedIn Netlify Status Accessibility Security Uptime

OpenComments is a modern, accessible public commenting platform that enables transparent government by making it easy for agencies to collect, moderate, and publish public feedback on policies and proposals.

Project Status

OpenComments is currently transitioning from a hackathon prototype to a production-ready platform.

πŸ›οΈ Project Purpose

OpenComments bridges the gap between government agencies and citizens by providing a secure, user-friendly platform for public comment periods. Built with modern web technologies and designed for accessibility, it ensures every voice can be heard in the democratic process.

πŸ› οΈ Tech Stack

  • Frontend: React 18 + TypeScript + Tailwind CSS
  • Backend: Supabase (PostgreSQL + Auth + Storage + Edge Functions)
  • Testing: Vitest + Cypress + Playwright
  • Deployment: Netlify (Frontend) + Supabase (Backend)
  • CI/CD: GitHub Actions

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account

Setup

# Clone repository
git clone https://github.com/MetaPhase-Consulting/opencomments.git
cd opencomments

# Install dependencies
npm install

# Copy environment template
cp .env.example .env

# Configure your Supabase credentials in .env
# VITE_SUPABASE_URL=https://your-project.supabase.co
# VITE_SUPABASE_ANON_KEY=your-anon-key

# Apply database migrations
npm run db:migrate

# Start development server
npm run dev

Visit http://localhost:5173 to see the application.

πŸ“ Folder Structure

opencomments/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # Reusable UI components
β”‚   β”œβ”€β”€ pages/              # Route components
β”‚   β”‚   β”œβ”€β”€ agency/         # Agency admin portal
β”‚   β”‚   └── public/         # Public-facing pages
β”‚   β”œβ”€β”€ hooks/              # Custom React hooks
β”‚   β”œβ”€β”€ contexts/           # React context providers
β”‚   β”œβ”€β”€ lib/                # Utilities and configurations
β”‚   └── types/              # TypeScript type definitions
β”œβ”€β”€ supabase/
β”‚   β”œβ”€β”€ migrations/         # Database schema changes
β”‚   └── functions/          # Edge functions
β”œβ”€β”€ tests/                  # Test files
β”œβ”€β”€ docs/                   # Documentation
└── public/                 # Static assets

πŸ§ͺ Development

Testing (Current)

# Run unit tests
npm run test

# Typecheck
npm run typecheck

# Build
npm run build

Note: automated test coverage is being built out as part of the production hardening roadmap.

Database

# Apply migrations
npm run db:migrate

# Reset database (development only)
supabase db reset

Quality Assurance

Before deploying, ensure quality gates pass:

  1. Lint: npm run lint
  2. Typecheck: npm run typecheck
  3. Build: npm run build
  4. Test suite: npm run test:ci

πŸ“š Documentation

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

  • Documentation: Check the docs/ folder for detailed guides
  • Issues: Report bugs via GitHub Issues
  • Support: Available through our contact form

Built with ❀️ for transparent government

About

A public commenting platform providing transparency for local governments.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors