Skip to content

happenings-community/requests-and-offers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

980 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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.

πŸš€ 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/                       # Tryorama integration tests
└── 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

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors