How ntgmc/goofish-infrast-public works
This is a web application for Arknights players to configure and manage MAA base schedules, submit optimization jobs, and review results. The main flow runs from the React optimization workflow through the API into a durable PostgreSQL queue; a compatible external OptimizerPort worker performs the computation and results return through job-query APIs. The product also includes accounts and workspaces, billing and inventory, administration, public content, integrations, and service-status monitoring. Paths and wiring reflect the tree, README, and sampled excerpts; unsampled subsystem links are limited to explicitly documented behavior.
Main entry points: routes.ts HTTP route dispatch · api-client.ts API client · App.tsx React application · service.ts Job lifecycle service
Components 26
Web application
- React application
src/App.tsx - Optimization workflow
src/pages/tool/optimize/useOptimizeWorkflow.tsx - Account workspace
src/pages/tool/useToolSession.ts - Schedule results
src/components/result-panel/ResultPanel.tsx - API client
src/lib/api-client.ts
API and accounts
- HTTP route dispatch
server/routes.ts - Optimization API
server/handlers/optimization.ts - Account handlers
server/handlers/user-workspace.ts - Admin API handlers
server/handlers/admin-users.ts - Skland binding API
server/handlers/skland-client.ts - Public content and events
server/handlers/site-public-content.ts
Optimization jobs
- Job lifecycle service
server/optimization/jobs/service.ts - Worker runtime
server/optimize-worker-runtime.ts - Optimizer dispatcher
server/optimization/jobs/optimizer-dispatcher.ts
Persistent state
- PostgreSQL
server/storage/postgres.ts - Job queue and results
server/storage/optimize-job-store.ts - Account and workspace stores
server/storage/user-store.ts
Operations and integrations
- Administration
src/pages/admin/useAdminController.tsx - Transactional email
server/ses-email.ts - Service status
server/handlers/service-status.ts - ECS worker autoscaling
server/aliyun-ecs-worker-controller.ts
Other components
- Arknights player
- OptimizerPort implementation
- Skland service
- Brevo and Amazon SES
- Aliyun ECS
Connections 27
- Arknights player → React application: uses
- React application → Optimization workflow: presents
- React application → Account workspace: manages session
- Optimization workflow → API client: submits and queries
- Account workspace → API client: loads and saves
- API client → HTTP route dispatch: HTTP requests
- HTTP route dispatch → Optimization API: dispatches optimization
- HTTP route dispatch → Account handlers: dispatches account
- Optimization API → Job lifecycle service: submits and manages
- Job lifecycle service → Job queue and results: queues and reads jobs
- Job queue and results → PostgreSQL: persists jobs
- Worker runtime → Job queue and results: claims and updates
- Worker runtime → Optimizer dispatcher: dispatches execution
- Optimizer dispatcher → OptimizerPort implementation: invokes
- OptimizerPort implementation → Worker runtime: returns computation
- Job lifecycle service → API client: serves job state
- API client → Schedule results: delivers results
- Account handlers → Account and workspace stores: reads and writes
- Account and workspace stores → PostgreSQL: persists accounts
- Administration → API client: admin requests
- HTTP route dispatch → Admin API handlers: dispatches admin
- Admin API handlers → PostgreSQL: accesses stored data
- Skland binding API → Skland service: fetches account data
- Transactional email → Brevo and Amazon SES: sends transactional mail
- HTTP route dispatch → Public content and events: dispatches content
- HTTP route dispatch → Service status: dispatches status
- ECS worker autoscaling → Aliyun ECS: starts and stops workers