Logo Lanfrica

etopat2/e-Recruit

Domain:

digital infrastructure

Record type:

softwareproject
Creator:
eto
Host:
UPS e-Recruit is a secure, campaign-driven PWA for end-to-end Uganda Prisons Service recruitment, supporting online applications, OCR-assisted document verification, offline interview operations, scoring, ranking, quotas, medicals, selection, training intake, reporting, and audit trails. # Uganda Prisons Service e-Recruit UPS e-Recruit is a secure, campaign-configurable recruitment platform. ## Architecture - `apps/api`: Laravel 13 modular application/API, PostgreSQL persistence, Redis cache/queue, private S3-compatible documents, Sanctum tokens, MFA, scoped RBAC, append-only hash-chained audit. - `apps/web`: Vue 3 + TypeScript installable PWA for applicants and staff, including controlled offline field queues in IndexedDB. - `services/document-worker`: bounded Python 3.12 FastAPI worker for document decoding, quality checks, deskewing, OCR, confidence, boxes and extracted fields. OCR is assistive and never an automatic rejection authority. - `infra`: Nginx and operational scripts. - `docs`: architecture, security, operations, acceptance and go-live evidence. The supplied `Resources/logo.png` is the official in-app logo. Square favicon/PWA assets are derived from it under `apps/web/public/icons`. ## Development quick start Requirements: Docker Desktop with Compose v2. The root ports are configurable in `.env.example`. ```sh cp .env.example .env cp apps/api/.env.example apps/api/.env docker compose build docker compose up -d docker compose exec api php artisan key:generate --force docker compose exec api php artisan migrate --seed --force ``` Open `localhost`. Mailpit is at `localhost` and MinIO development console at `localhost`. Demo staff accounts are disabled by default. For an isolated development database only, set `SEED_DEMO_USERS=true` in `apps/api/.env`, reseed, and immediately change the documented development-only password `ChangeMe!2026`. Privileged demo accounts still require MFA enrolment on first login. ## Quality gates ```sh docker compose exec api php artisan test docker compose exec api php vendor/bin/pint --test docker compose exec web npm test docker compose exec web npm run build docker compose exec document-worker ruff check . docker compose exec document-worker pytest -q ``` Run b …