MerchantsOfHope.org Recruiting Platform
This is the official recruiting platform for MerchantsOfHope.org, designed to connect talented professionals with opportunities across TSYS Group's diverse business lines.
Architecture Overview
The platform implements a multi-tenant architecture to support TSYS Group's dozens of independent business lines, each with complete data isolation. Key features include:
- Multi-tenant architecture with data isolation
- OIDC and social media login support
- Job seeker functionality (browse positions, apply, upload resumes)
- Job provider functionality (manage positions, applications)
- Full accessibility compliance (WCAG 2.1 AA standards)
- Security compliance (PCI, GDPR, SOC, FedRAMP)
Technology Stack
- Backend: Go with Gin framework
- Database: PostgreSQL with GORM
- Authentication: OIDC and OAuth2
- Session Management: Redis
- Frontend: HTML/CSS/JS with accessibility focus
- Containerization: Docker and Docker Compose
Security & Compliance
The platform implements several security measures to ensure compliance with industry standards:
- PCI DSS compliance for handling any sensitive data
- GDPR compliance for EU data protection
- SOC 2 compliance for security, availability, and privacy
- FedRAMP compliance for government cloud requirements
- Content Security Policy (CSP) headers
- Rate limiting and audit logging
- Secure authentication with OIDC
- Data residency controls
Project Structure
qwen/go/
├── cmd/
├── api/
├── db/ # Database connection and migrations
├── models/ # Data models
├── middleware/ # Authentication and authorization
├── handlers/ # HTTP request handlers
├── services/ # Business logic
├── utils/ # Utility functions
├── config/ # Configuration management
├── security/ # Security controls and compliance
├── templates/ # HTML templates
├── static/ # Static assets (CSS, JS, images)
├── tests/ # Test files
├── main.go # Entry point
├── go.mod, go.sum # Go modules
├── Dockerfile # Container configuration
└── docker-compose.yml # Service orchestration
Running the Application
The application is designed to run in Docker containers. To start the application:
- Ensure Docker and Docker Compose are installed
- Navigate to the
qwen/godirectory - Run
docker-compose up --build
The application will be available at http://localhost:17000.
API Endpoints
GET /health- Health checkPOST /api/v1/auth/login- User loginPOST /api/v1/auth/register- User registrationGET /api/v1/positions- Browse job positionsPOST /api/v1/positions- Create job position (job providers)POST /api/v1/applications- Apply to positionPOST /api/v1/resumes- Upload resume
Compliance Features
The platform includes several features to ensure compliance with regulatory requirements:
GDPR Compliance
- Data residency controls
- User consent mechanisms
- Right to deletion implementations
- Privacy policy integration
Security Controls
- Role-based access control
- API rate limiting
- Content security policy
- Audit logging
- Secure authentication
Accessibility
- WCAG 2.1 AA compliance
- Semantic HTML structure
- Proper ARIA labels
- Keyboard navigation
- Sufficient color contrast
Development
To run tests:
go test ./tests/...
For local development, you can run the application directly:
go run main.go
Note: This requires Go 1.21+, PostgreSQL, and Redis to be installed and running locally.
Deployment
The platform is designed for containerized deployment. The docker-compose.yml file includes all necessary services:
- Application server
- PostgreSQL database
- Redis for session management
- Nginx as reverse proxy
- Keycloak for OIDC
For production deployment, ensure all security configurations are properly set and consider using Kubernetes for orchestration.