Skip to content

Latest commit

 

History

1,092 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requests and Offers

Ask DeepWiki

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.

Warning

This project is in alpha and is not production ready. Expect breaking changes, incomplete features, and potential instability. Use at your own risk.

Requests and Offers home page

🚀 Quick Start

# Clone and setup
git clone https://github.com/Happening-Community/requests-and-offers.git
cd requests-and-offers && nix develop
bun install && bun start

📖 Documentation

Essential Reading

Quick Reference

🛠️ Development Commands

Running the Application

# (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 agents

Testing

bun test               # All tests
bun test:ui            # Frontend tests
bun test:unit          # Unit tests (requires Nix)
bun test:integration   # Integration tests

Building

bun build:zomes        # Build zomes
bun build:happ         # Build complete hApp
bun package            # Package for distribution

Note: Unit tests require Nix environment due to hREA integration. Use nix develop --command bun test:unit for autonomous execution.

🔧 Development Features System

The project uses atomic environment-based feature control through the DevFeatures Service, providing fine-grained control over development features without a master switch.

🎯 Atomic Feature Control

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

🧑‍💻 Development Mode

  • Purpose: Full development experience with debugging tools
  • Command: bun start (from project root)
  • Features: Mock data buttons, network peers display, development utilities
  • Environment: Uses .env with atomic feature control
  • Service: DevFeatures Service provides centralized feature management

🏗️ Build Mode

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.

🏗️ Architecture Integration

The DevFeatures Service follows the 7-layer Effect-TS architecture:

  • Service Layer: DevFeaturesService with 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.

📁 Project Structure

requests-and-offers/
├── dnas/requests_and_offers/    # Holochain DNA with coordinator/integrity zomes
├── ui/                          # SvelteKit frontend with 7-layer Effect-TS architecture
├── tests/sweettest/             # Sweettest integration tests (Rust)
└── documentation/               # Comprehensive project documentation

See Architecture Overview for detailed system design.

🔄 MVP Transition

This project is currently transitioning to a simplified MVP approach:

Simplified MVP Features

  • 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

Post-MVP Features (Coming Later)

  • 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.

🤝 Community & Licensing

About

Requests And Offers is a hAppenings.community project to facilitate exchange between Holochain creators, developers, advocates, projects and organisations! It's an agent-centric, distributed marketplace of requests and offers built with Holochain.

Topics

Resources

Stars

16 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages