129 lines
4.0 KiB
Markdown
129 lines
4.0 KiB
Markdown
# 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:
|
|
|
|
1. Ensure Docker and Docker Compose are installed
|
|
2. Navigate to the `qwen/go` directory
|
|
3. Run `docker-compose up --build`
|
|
|
|
The application will be available at `http://localhost:17000`.
|
|
|
|
## API Endpoints
|
|
|
|
- `GET /health` - Health check
|
|
- `POST /api/v1/auth/login` - User login
|
|
- `POST /api/v1/auth/register` - User registration
|
|
- `GET /api/v1/positions` - Browse job positions
|
|
- `POST /api/v1/positions` - Create job position (job providers)
|
|
- `POST /api/v1/applications` - Apply to position
|
|
- `POST /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:
|
|
```bash
|
|
go test ./tests/...
|
|
```
|
|
|
|
For local development, you can run the application directly:
|
|
```bash
|
|
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. |