Skip to content

sparrowsl/pipeline

Β 
Β 

Repository files navigation

🌐 DPG Pipeline

License: MIT Node.js Version Svelte TailwindCSS Supabase

DPG Pipeline is a comprehensive web-based platform designed to accelerate the development, funding, and sustainability of Digital Public Goods (DPGs). Built with modern web technologies and powered by a robust backend, it serves as a central hub for connecting contributors, funders, and DPG projects while ensuring compliance with the Digital Public Goods Standard.

🚧 Status: Currently in active development. We welcome contributions and feedback from the community!

🌟 Features

πŸ“ˆ Project Management & Tracking

  • Comprehensive Project Profiles: Detailed project pages with descriptions, goals, team information, and progress tracking
  • Real-time Updates: Live project updates with commenting system for transparent communication
  • Member Management: Team collaboration tools with role-based permissions
  • Interactive Pipeline Visualization: Animated pipeline showing project progression through DPG compliance stages

πŸ’° Funding & Contributions

  • Multi-type Contributions: Support for both financial and non-financial resource contributions
  • Crowdsourced Funding: Community-driven funding mechanisms for sustainable project development
  • Resource Tracking: Detailed tracking of all contributions and resource allocation
  • Contributor Recognition: Public acknowledgment and profiling of project supporters

βœ… DPG Standard Compliance

  • Automated Evaluation Process: Streamlined assessment against Digital Public Goods Standard criteria
  • Compliance Tracking: Real-time monitoring of project compliance status
  • Documentation Support: Guided documentation creation for DPG certification
  • Expert Review System: Community and expert review processes for validation

πŸ” Discovery & Exploration

  • Advanced Search & Filtering: Powerful search capabilities with category-based filtering
  • Project Categories: Organized project classification system
  • Recommendation Engine: AI-powered project recommendations based on user interests
  • Leaderboards: Community recognition and project popularity tracking

πŸ‘€ User Experience

  • Personalized Profiles: Comprehensive user profiles with contribution history and interests
  • Bookmarking System: Save and organize favorite projects
  • Activity Feeds: Stay updated with project developments and community activity
  • Mobile-Responsive Design: Seamless experience across all devices

πŸ” Security & Authentication

  • Secure Authentication: Supabase-powered authentication with social login options
  • Content Security Policy: Comprehensive CSP implementation for enhanced security
  • Data Protection: Encrypted data transmission and secure storage
  • CSRF Protection: Built-in protection against cross-site request forgery

πŸ—οΈ Architecture & Technology Stack

Frontend Technologies

  • SvelteKit: Modern, reactive web framework with server-side rendering
  • TypeScript: Type-safe development with enhanced code quality
  • TailwindCSS: Utility-first CSS framework with custom design system
  • Shadcn/ui: Modern UI component library adapted for Svelte
  • Space Grotesk: Primary typography with modern geometric design

Backend & Infrastructure

  • Supabase: Backend-as-a-Service providing database, authentication, and real-time features
  • PostgreSQL: Robust relational database for data persistence
  • Node.js: Server-side JavaScript runtime environment
  • Vite: Next-generation frontend build tool for fast development

Development & Quality Assurance

  • Vitest: Unit testing framework with TypeScript support
  • Prettier: Code formatting for consistent style
  • ESLint: Code linting for quality assurance
  • GitHub Actions: Continuous integration and deployment

External Integrations

  • GitHub API: Repository integration and automated project tracking
  • OpenAI API: AI-powered features and content generation
  • Sentry: Error tracking and performance monitoring
  • Vercel: Deployment and hosting platform

πŸš€ Quick Start

Prerequisites

Ensure you have the following installed on your development machine:

  • Node.js (v20.12.0 or higher) - Download
  • npm (comes with Node.js) or yarn as package manager
  • Git for version control
  • Vercel CLI (optional, for deployment) - Install Guide

Installation

  1. Clone the Repository

    git clone https://github.com/christex-foundation/pipeline.git
    cd pipeline
  2. Install Dependencies

    npm install
  3. Environment Configuration

    Choose one of the following methods:

    Option A: Pull from Vercel (Recommended for team members)

    npx vercel env pull

    Option B: Manual Configuration

    cp .env.example .env

    Then configure your .env file with the following variables:

    # Supabase Configuration
    VITE_SUPABASE_URL=your_supabase_project_url
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
    PRIVATE_SUPABASE_SERVICE_KEY=your_supabase_service_role_key
    
    # Optional: Third-party Services
    OPENAI_API_KEY=your_openai_api_key
    SENTRY_DSN=your_sentry_dsn
  4. Database Setup

    Follow our comprehensive Database Setup Guide to configure your Supabase database with the required schema.

  5. Start Development Server

    npm run dev

    Your application will be available at http://localhost:5173

Development Commands

# Development server with hot reload
npm run dev

# Production build
npm run build

# Preview production build
npm run preview

# Run tests
npm run test

# Type checking
npm run check

# Type checking with watch mode
npm run check:watch

# Code formatting
npm run format

πŸ“ Project Structure

pipeline/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ lib/                    # Reusable Svelte components
β”‚   β”‚   β”œβ”€β”€ components/         # UI components (shadcn/ui)
β”‚   β”‚   β”œβ”€β”€ server/            # Server-side utilities
β”‚   β”‚   β”‚   β”œβ”€β”€ repo/          # Database repository layer
β”‚   β”‚   β”‚   β”œβ”€β”€ service/       # Business logic services
β”‚   β”‚   β”‚   └── validator/     # Input validation schemas
β”‚   β”‚   β”œβ”€β”€ stores/            # Svelte stores for state management
β”‚   β”‚   └── utils/             # Utility functions
β”‚   β”œβ”€β”€ routes/                # SvelteKit file-based routing
β”‚   β”‚   β”œβ”€β”€ (auth)/           # Authentication routes
β”‚   β”‚   β”œβ”€β”€ api/              # API endpoints
β”‚   β”‚   β”œβ”€β”€ explore/          # Project discovery pages
β”‚   β”‚   β”œβ”€β”€ profile/          # User profile management
β”‚   β”‚   β”œβ”€β”€ project/          # Project-specific pages
β”‚   β”‚   └── resources/        # Educational content
β”‚   β”œβ”€β”€ app.html              # HTML template
β”‚   β”œβ”€β”€ app.css               # Global styles
β”‚   └── service-worker.js     # PWA service worker
β”œβ”€β”€ static/                   # Static assets
β”œβ”€β”€ docs/                     # Documentation
β”‚   β”œβ”€β”€ DB_SETUP.md          # Database configuration guide
β”‚   β”œβ”€β”€ STYLE_GUIDE.md       # Design system documentation
β”‚   └── dpg-evaluation-process.md
β”œβ”€β”€ db/                       # Database schema and migrations
β”œβ”€β”€ tailwind.config.js        # Tailwind CSS configuration
β”œβ”€β”€ svelte.config.js          # SvelteKit configuration
└── package.json              # Project dependencies and scripts

🎨 Design System

Our application follows a comprehensive design system built on TailwindCSS with custom configurations:

Color Palette

  • Primary Accent: Purple (#ad89fd) - Used for primary actions and brand elements
  • Secondary Accent: Lime (#bde35b) - Used for highlights and positive interactions
  • Dashboard Theme: Dark theme with carefully crafted gray scale for optimal readability

Typography

  • Primary Font: Space Grotesk - Modern geometric sans-serif
  • Type Scale: Comprehensive scale from display (hero text) to labels (UI elements)

For detailed design guidelines, see our Style Guide.

πŸ”§ Configuration & Customization

Tailwind Configuration

Our custom Tailwind configuration includes:

  • Dashboard Color System: Comprehensive color palette for dark theme
  • Typography Scale: Professional typography system with consistent sizing
  • Component Patterns: Reusable utility combinations for common components

SvelteKit Configuration

Key configurations include:

  • Security: Content Security Policy (CSP) and CSRF protection
  • Performance: Service worker, prerendering, and optimization settings
  • Aliases: Path aliases for cleaner imports

Environment Variables

Variable Description Required
VITE_SUPABASE_URL Your Supabase project URL βœ…
VITE_SUPABASE_ANON_KEY Supabase anonymous key βœ…
PRIVATE_SUPABASE_SERVICE_KEY Supabase service role key βœ…
OPENAI_API_KEY OpenAI API key for AI features ❌
SENTRY_DSN Sentry DSN for error tracking ❌

🀝 Contributing

We welcome contributions from developers, designers, and DPG enthusiasts! Here's how you can get involved:

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork locally
  3. Create a feature branch from main
  4. Make your changes following our coding conventions
  5. Test your changes thoroughly
  6. Submit a pull request with a clear description

Development Guidelines

  • Follow the existing code style and conventions
  • Write meaningful commit messages
  • Include tests for new features
  • Update documentation when necessary
  • Keep PRs focused and manageable in size

For detailed contribution guidelines, see CONTRIBUTING.md.

Code of Conduct

We are committed to providing a welcoming and inclusive environment for all contributors. Please read and follow our Code of Conduct.

πŸ”„ Webhook Integration

To enable real-time GitHub integration and automated project updates:

  1. Navigate to your project's Settings on GitHub
  2. Go to Webhooks β†’ Add webhook
  3. Set Payload URL to: https://pipeline-tau.vercel.app/api/github/webhook
  4. Choose Content type: application/json
  5. Select Send me everything for events
  6. Click Add webhook

This enables automatic synchronization of project data with GitHub repositories.

πŸ“š Documentation

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables in Vercel dashboard
  3. Deploy automatically with each push to main branch

Manual Deployment

# Build the application
npm run build

# Deploy to your preferred hosting platform
npm run preview  # Test the build locally first

πŸ“Š Performance & Monitoring

  • Service Worker: Enabled for offline functionality and faster loading
  • Prerendering: Static pages are pre-rendered for better SEO and performance
  • Error Tracking: Sentry integration for comprehensive error monitoring
  • Performance Monitoring: Built-in analytics and performance tracking

πŸ”’ Security

  • Content Security Policy: Comprehensive CSP headers for XSS protection
  • CSRF Protection: Built-in CSRF token validation
  • Secure Headers: Additional security headers for enhanced protection
  • Input Validation: Server-side validation using Zod schemas
  • Authentication: Secure authentication flow with Supabase

🌍 Community & Support

Get Help

  • Issues: Report bugs and request features on GitHub Issues
  • Discussions: Join community discussions on GitHub Discussions
  • Documentation: Comprehensive guides in the /docs directory

Stay Updated

  • Watch the repository for updates
  • Star the project if you find it useful
  • Follow @ChristexFoundation for announcements

πŸ“„ License

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

πŸ™ Acknowledgments

  • Digital Public Goods Alliance for establishing the DPG Standard
  • Christex Foundation for project sponsorship and support
  • Open Source Community for the amazing tools and libraries that make this project possible
  • Contributors who help improve and maintain this platform

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Svelte 74.8%
  • JavaScript 21.9%
  • TypeScript 2.7%
  • Other 0.6%