The 1368 to 1644 scope turns institutions into a browsable map
Ming Official Atlas connects administrative geography, central offices, official titles, reign eras, and individual careers across the Ming dynasty. The default year is 1566, but readers can move through the 1368 to 1644 range and see names change with the selected year. Provinces lead to prefectures and counties, while court and local-office scenes offer another route into the same material.
The interface has separate desktop and mobile compositions. Search covers people and offices, biography panels show appointments and sources, and the phone layout uses its own navigation and full-screen reading panels. That care makes this more than a map with pins. It is an editorial model of how a reader might enter a dense institutional history by year, place, person, or office.
The README also states a firm limit: the collected people, careers, and offices are still being corrected and do not form a complete annual roster of Ming officials. Source uncertainty is retained, and fiction is not substituted for historical evidence. Researchers should therefore treat the atlas as a navigational aid whose records still need source-level checking.
Our 572-package install built, with no test target to run
Our sandbox installed commit 16d426e in 39 seconds, pulling 572 packages and occupying 742 MB. The production build completed in 22 seconds. The package had no test script or target, so we skipped tests rather than inventing a substitute command. Npm audit found 14 known vulnerabilities: 9 high, 4 moderate, and 1 low. Those findings need review before the code handles visitor or feedback data.
The repository itself was large for a focused atlas: 786 files, about 15,476 source lines, and a 321.6 MB checkout. Our scan found 0 CI workflow files, no Dockerfile, and no tests directory. A successful build shows that the front-end path is coherent at the measured commit. It does not provide regression coverage for year changes, geographic navigation, historical matching, or administrative access.
What happened when we ran it
Our run used an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. Installation succeeded in 39 seconds and the build succeeded in 22 seconds. We did not run tests because the repository exposed no test target. We also did not connect MySQL, start PHP, submit a phone number, inspect the admin area, or deploy the generated files to a web host.
Npm audit reported 14 vulnerabilities across the 572 installed packages. The supplied result gives severity counts, not package names or exploit paths, so it would be wrong to call them reachable defects in the public site. It would also be wrong to ignore 9 high-severity findings. A maintainer should reproduce the audit, map each advisory to the built output or tooling path, and update without changing the historical interface.
Node 22.13 builds only the public half of the system
Local front-end work requires Node.js 22.13 or newer and starts a Vite server on port 5174. The versioned public snapshots let much of the history experience work from the repository. Visit tracking, feedback, the admin area, and live history services add PHP 8.2, PDO MySQL, MySQL 8.0, and configuration stored outside the web root. Development proxies those APIs through port 8088.
The deployment target is a website root populated from dist-nas/; the documented assets are not prepared for a nested path. Valid HTTPS is required for admin access and phone-number feedback. Private database settings, sessions, backups, visitor IP data, and feedback records stay outside the repository. That separation is sensible, but it means a Git clone cannot recreate the complete production system. Some historical rebuild scripts also rely on local raw sources and database exports.
The 67-star project has no license or release
GitHub showed 67 stars, no open issues or pull requests, and no releases when checked on October 1, 2026. The last push was September 9. That is recent activity from a project created two days earlier, but it leaves almost no public maintenance history. More importantly, GitHub detected no license and the repository root contains no license file. Public source does not automatically grant reuse rights.
The missing license changes the recommendation more than the visual polish does. You can study the architecture and browse the published material, but copying the code or redistributing a derivative needs permission or an explicit license. Combined with 14 audit findings, no automated test target, and production data that lives elsewhere, this is best approached as a reference atlas first. A reusable software platform would need clearer legal and operational foundations.

