toomastorres/maritime-agency-web
GitHub: toomastorres/maritime-agency-web
一个基于 PHP 8.2 和 MySQL 的海运代理机构网站加内部管理 Portal 全栈模板,集成多语言机构展示、RBAC 权限管理和审计功能。
Stars: 0 | Forks: 0
# 🌐 机构网站 + 内部 Portal — 海运代理





[](https://github.com/toomastorres/maritime-agency-web/actions/workflows/ci.yml)

## 功能特性
**公开网站**
- 多语言(ES/EN/IT/PT),自带 i18n 系统(`src/i18n/*.json`)。
- 机构页面、服务(包含 D3 地图)、 schedules(读取 Excel),
新闻、汇率以及法律页面。
- 内部 API(`src/logic/api/*`),用于报价、职位空缺、文档、
申请(上传 CV)和 healthcheck。
**内部 Portal(`/gestion-interna-agencia/`)**
- 身份验证采用 **sessions、CSRF、rate limiting** 以及 NIST 风格的密码策略
(包含常见密码黑名单)。
- **RBAC**:每个角色只能看到属于自己的模块(RRHH、Caja/汇率、Customer
Service、文档、用户管理)。
- 操作审计(`admin_audit_logs`)以及邮件发送审计。
## 架构
```
├── index.php # Front controller (router + headers de seguridad)
├── src/
│ ├── config/ # Configuración (lee .env / env del hosting)
│ ├── core/ # PDO, EmailService (PHPMailer), utils, parsers XLSX
│ ├── components/ # Header / footer reutilizables
│ ├── pages/ # Vistas públicas
│ ├── logic/api/ # Endpoints JSON (GET de datos, POST de formularios)
│ ├── i18n/ # Diccionarios de traducción
│ └── email-templates/ # Plantillas HTML de notificaciones
├── private/gestion-interna-agencia/
│ ├── includes/ # auth.php (sesiones/CSRF/rate-limit), db.php, password_policy.php
│ └── views/ # Módulos del panel (RRHH, caja, CS, usuarios, auditoría)
├── database/ # install.sql (schema) + seed (datos ficticios) + reset
└── docs/ # Documentación técnica (BACKEND, FRONTEND, ADMIN_PORTAL, ...)
```
### 请求流程
```
flowchart LR
REQ[Request] --> HT[.htaccess
rewrite] --> FC[index.php
front controller] FC -->|ruta pública| PG[src/pages + API JSON] FC -->|/gestion-interna-agencia| AUTH{auth.php
sesión + CSRF + RBAC} AUTH -->|ok| ADM[Vistas del panel] AUTH -->|no| LOGIN[Login] PG --> DB[(MySQL · PDO)] ADM --> DB ``` 关键设计决策:所有数据访问均使用 prepared statements (PDO),通过 `.env` 实现 按环境的配置分离,依赖项的条件加载(如果缺少 `vendor/` 会优雅降级), 并在 front controller 中设置安全 headers(兼容 CSP)。 ## 本地 Demo(Docker) ``` cp .env.example .env # opcional: el compose ya pasa las credenciales por entorno docker compose up --build ``` - 公开网站:
- 内部 Portal:
MySQL 会自动使用 schema(`database/install.sql`)和示例数据进行
初始化。要创建首个 admin 用户,请参阅 [docs/PROVISION_USUARIOS.md](docs/PROVISION_USUARIOS.md)。
## 技术栈
PHP 8.2 · MySQL 8 (PDO) · 原生 JavaScript + D3.js · PHPMailer (SMTP) ·
Apache(`.htaccess`:rewrite + cache) · Composer · Docker / Docker Compose。
## 安全性
`.env`、logs 和 uploads 已通过 [.gitignore](.gitignore) 排除。凭据
通过环境变量注入;本代码库不包含任何 secret 或真实数据。
## ♻️ 适用对象 / 如何复用?
这是一个适用于 **机构网站 + 带有 login 和 roles (RBAC) 的 intranet** 的 PHP 模板,无需依赖笨重的框架。
若要进行适配:请配置你的 `.env`,运行 `database/install.sql`,并复用 `private/` 中的 portal
(包含 CSRF、rate-limiting 和密码策略的 auth)以及 `src/core` 层(PDO、EmailService、i18n)。
最后通过 `docker compose up` 启动所有服务。
rewrite] --> FC[index.php
front controller] FC -->|ruta pública| PG[src/pages + API JSON] FC -->|/gestion-interna-agencia| AUTH{auth.php
sesión + CSRF + RBAC} AUTH -->|ok| ADM[Vistas del panel] AUTH -->|no| LOGIN[Login] PG --> DB[(MySQL · PDO)] ADM --> DB ``` 关键设计决策:所有数据访问均使用 prepared statements (PDO),通过 `.env` 实现 按环境的配置分离,依赖项的条件加载(如果缺少 `vendor/` 会优雅降级), 并在 front controller 中设置安全 headers(兼容 CSP)。 ## 本地 Demo(Docker) ``` cp .env.example .env # opcional: el compose ya pasa las credenciales por entorno docker compose up --build ``` - 公开网站:
标签:Docker, ffuf, OpenVAS, PHP, RBAC权限控制, Syscall, Web开发, 企业门户, 内部管理系统, 国际化, 安全防御评估, 版权保护, 请求拦截