Files
MOHPortalTest-AllAgents-All…/qwen/hack
2025-10-24 17:06:14 -05:00
..
2025-10-24 14:51:13 -05:00
2025-10-24 16:29:40 -05:00
2025-10-24 16:29:40 -05:00
.
2025-10-24 17:06:14 -05:00
2025-10-24 16:29:40 -05:00
.
2025-10-24 17:06:14 -05:00
2025-10-24 14:51:13 -05:00
2025-10-24 14:51:13 -05:00
2025-10-24 16:29:40 -05:00
.
2025-10-24 17:06:14 -05:00
2025-10-24 16:29:40 -05:00
2025-10-24 14:51:13 -05:00
.
2025-10-24 17:06:14 -05:00
2025-10-24 16:29:40 -05:00
2025-10-24 16:29:40 -05:00
2025-10-24 16:29:40 -05:00
2025-10-24 16:29:40 -05:00

MerchantsOfHope.org - Recruiting Platform

This is the official repository for MerchantsOfHope.org, the recruiting platform for TSYS Group.

Overview

MerchantsOfHope.org is designed to handle:

  • Multiple independent tenants (TSYS Group has dozens of lines of business, all fully isolated from each other)
  • OIDC and social media login
  • Job seekers browsing positions and posting resumes/going through the application process
  • Job providers managing the lifecycle of positions and applications

Tech Stack

  • Language: Hack (PHP)
  • Framework: Slim Framework 4
  • Container: Docker
  • Deployment: Kubernetes-ready

Architecture

  • Multi-tenant architecture ensuring complete isolation between different business lines
  • OIDC and social login integration
  • Compliance-ready with USA law, accessibility standards, PCI, GDPR, SOC, and FedRAMP

Development

  1. Clone this repository
  2. Install dependencies with composer install
  3. Set up environment variables in .env
  4. Run with Docker Compose

Port Assignment

This service runs on port 18000 as per the project requirements.

Testing

The project follows Test Driven Development (TDD) methodology. Run tests with:

composer test

Security & Compliance

This project implements:

  • Accessibility features for US Government contracts
  • PCI DSS compliance
  • GDPR compliance
  • SOC compliance
  • FedRAMP compliance
  • USA law compliance

API Documentation

Authentication Endpoints

  • POST /api/auth/login - Authenticate user
  • POST /api/auth/logout - Logout user
  • POST /api/auth/register - Register new user
  • GET /auth/google/callback - Google OAuth callback
  • GET /auth/github/callback - GitHub OAuth callback

Job Endpoints

  • GET /api/jobs - List all jobs with optional filters
  • GET /api/jobs/{id} - Get specific job
  • POST /api/jobs - Create new job (for job providers)
  • PUT /api/jobs/{id} - Update job (for job providers)
  • DELETE /api/jobs/{id} - Delete job (for job providers)
  • GET /api/my-jobs - Get jobs for current tenant (for job providers)

Application Endpoints

  • POST /api/applications - Apply for a job
  • GET /api/my-applications - Get applications for current user
  • GET /api/jobs/{id}/applications - Get applications for a specific job (for job providers)

Database Schema

The application uses PostgreSQL with the following main tables:

  • tenants - Stores tenant information
  • users - Stores user accounts
  • jobs - Stores job postings
  • applications - Stores job applications
  • audit_logs - Stores compliance audit logs

Environment Variables

The application expects the following environment variables (defined in .env):

  • APP_NAME - Application name
  • APP_VERSION - Application version
  • APP_ENV - Environment (development, production)
  • DEBUG - Enable debug mode
  • TIMEZONE - Application timezone
  • DB_HOST - Database host
  • DB_NAME - Database name
  • DB_USER - Database user
  • DB_PASS - Database password
  • DB_PORT - Database port
  • JWT_SECRET - Secret for JWT tokens
  • SESSION_LIFETIME - Session lifetime in seconds
  • TENANT_ISOLATION_ENABLED - Enable tenant isolation
  • ACCESSIBILITY_ENABLED - Enable accessibility features
  • GDPR_COMPLIANCE_ENABLED - Enable GDPR compliance
  • PCI_DSS_COMPLIANCE_ENABLED - Enable PCI DSS compliance
  • GOOGLE_CLIENT_ID - Google OAuth client ID
  • GOOGLE_CLIENT_SECRET - Google OAuth client secret
  • GITHUB_CLIENT_ID - GitHub OAuth client ID
  • GITHUB_CLIENT_SECRET - GitHub OAuth client secret
  • MAIL_HOST - Mail server host
  • MAIL_PORT - Mail server port
  • MAIL_USERNAME - Mail server username
  • MAIL_PASSWORD - Mail server password
  • MAIL_ENCRYPTION - Mail server encryption method

Docker Configuration

The application is configured to run with Docker and Docker Compose, including:

  • Application service
  • PostgreSQL database
  • Redis for caching/session storage
  • MailHog for development email testing
  • Nginx as a reverse proxy

Kubernetes Deployment

The application is designed for Kubernetes deployment with:

  • Proper resource requests and limits
  • Health checks
  • Configuration via ConfigMaps and Secrets
  • Service definitions for internal and external access
  • Ingress configuration for routing