Files
MOHPortalTest-AllAgents-All…/qwen/php/README.md

2.0 KiB

MerchantsOfHope.org Recruiting Platform

This is the PHP implementation of the MerchantsOfHope.org recruiting platform for the Qwen coding agent test.

Overview

MerchantsOfHope.org is the consulting/contracting arm of TSYS Group. This platform handles:

  • Multiple independent tenants (TSYS Group has dozens of lines of business, all fully isolated)
  • OIDC and social media login
  • Job seeker functionality (browsing positions, submitting applications)
  • Job provider functionality (managing positions and applications)
  • Full compliance with USA law, accessibility, PCI, GDPR, SOC, and FedRamp standards

Architecture

  • PHP 8.2 with Slim framework
  • PostgreSQL database with multi-tenant support
  • Redis for session management and caching
  • Docker containerization with docker-compose
  • OIDC and social login integration

Setup

  1. Clone this repository
  2. Run composer install to install dependencies
  3. Copy .env.example to .env and update configuration
  4. Build and run the Docker containers:
    docker-compose up --build
    
  5. The application will be available at http://localhost:20000

Development

  • Follow Test Driven Development (TDD) approach
  • Write tests in the tests/ directory
  • Run tests with composer test

Multi-Tenant Architecture

Each tenant is isolated with:

  • Separate data partitioning using tenant_id
  • Subdomain-based routing
  • Isolated configurations and permissions

Security & Compliance

  • Implements OIDC for authentication
  • Social login via Google and Facebook
  • Implements accessibility standards (Section 508/WCAG)
  • Secure password handling and session management
  • Prepared for PCI, GDPR, SOC, and FedRamp compliance

Testing

Run the test suite:

composer test

Docker Containers

  • Main application: qwen-php-merchants-of-hope (port 20000)
  • PostgreSQL: qwen-php-postgres
  • Redis: qwen-php-redis

The main application web interface is exposed on port 20000. All internal services communicate via the docker network.