A simple peer-to-peer bulletin board for the Holochain community, enabling creators, developers, and organizations to post requests and offers for services, skills, and resources with direct contact facilitation.
# Clone and setup
git clone https://github.com/Happening-Community/requests-and-offers.git
cd requests-and-offers && nix develop
bun install && bun start- π Project Overview - Complete project introduction and features
- π Quick Reference - Essential commands, patterns, and workflows
- ποΈ Architecture - System design and 7-layer Effect-TS architecture
- π§ Developer Guide - Setup and development workflow
- π Troubleshooting - Common issues and solutions
- π Full Documentation Index - Comprehensive documentation catalog
- Requirements: Overview | Features | Use Cases
- Technical: API Reference | Zomes | Testing
- Community: Contributing | Discord | Website
# (from project root)
# Development Mode - Full Holochain app with dev features
bun start # Start complete Holochain app (2 agents by default)
AGENTS=3 bun start # Custom number of agentsbun test # All tests
bun test:ui # Frontend tests
bun test:unit # Unit tests (requires Nix)
bun test:integration # Integration testsbun build:zomes # Build zomes
bun build:happ # Build complete hApp
bun package # Package for distributionNote: Unit tests require Nix environment due to hREA integration. Use
nix develop --command bun test:unitfor autonomous execution.
The project uses atomic environment-based feature control through the DevFeatures Service, providing fine-grained control over development features without a master switch.
Each development feature is independently controlled via environment variables:
# Mock/Testing Utilities - Shows mock data buttons in forms for testing
VITE_MOCK_BUTTONS_ENABLED=false
# Network Peers Display - Shows all network peers in test mode
VITE_PEERS_DISPLAY_ENABLED=false- Purpose: Full development experience with debugging tools
- Command:
bun start(from project root) - Features: Mock data buttons, network peers display, development utilities
- Environment: Uses
.envwith atomic feature control - Service: DevFeatures Service provides centralized feature management
The application supports production builds through Vite:
- Production Build:
bun run build(from ui directory)
Development features are controlled at runtime via the atomic environment variables in .env, not through different build configurations.
The DevFeatures Service follows the 7-layer Effect-TS architecture:
- Service Layer:
DevFeaturesServicewith Context.Tag dependency injection - Schema Validation: Type-safe Effect Schema definitions
- Component Integration: Used across all form components
- Production Safety: Automatic removal via Vite tree-shaking
Usage Example:
import { shouldShowMockButtons } from '$lib/services/devFeatures.service';
// In components without Effect context
if (shouldShowMockButtons()) {
// Show mock data buttons
}For detailed information, see Architecture Overview and Developer Guide.
requests-and-offers/
βββ dnas/requests_and_offers/ # Holochain DNA with coordinator/integrity zomes
βββ ui/ # SvelteKit frontend with 7-layer Effect-TS architecture
βββ tests/ # Tryorama integration tests
βββ documentation/ # Comprehensive project documentationSee Architecture Overview for detailed system design.
This project is currently transitioning to a simplified MVP approach:
- Bulletin Board: Simple request/offer listing system
- Direct Contact: Clear display of contact information for communication
- User Management: Archive/delete own listings
- Search & Browse: Find requests and offers by keywords and tags
- Exchange Process: Proposal, agreement, and review workflows
- In-App Messaging: Secure communication between users
- Reputation System: Review and rating mechanisms
- Advanced Matching: Algorithmic request/offer matching
See MVP Documentation for details on the simplified approach.
- Discord: Join our community
- Website: hAppenings.community
- Contributing: See Contributing Guide
- License: Cryptographic Autonomy License v1.0