create-exam-app
v1.0.10
Published
Scaffold exam projects: EPMS, SIMS, SFMS, LMS — npx, pick a template, get backend + frontend + README + .env
Maintainers
Readme
create-exam-app
Scaffolds a project: backend/, frontend/, README.md, .env and backend/.env (from backend/.env.example when needed).
Users
npx create-exam-app
# optional: folder name (default is epms-app / sims-app for the template you pick)
npx create-exam-app my-folder- Prints a short numbered list (
[1],[2], …). - If there is more than one template, type a number and Enter at
Pick (1–N):(or Enter for1). One template = no question. - Output:
Done: <path>— thennpm iandnpm run devinbackendandfrontend(ports are in that project’sREADME).
Templates (manifest)
| Order | ID | Name | When to use | |------:|------|-------|-------------| | 1 | epms | EPMS | Payroll, departments, employees, salary CRUD, monthly report | | 2 | sims | SIMS | Spare parts, stock in, stock out (out CRUD), daily stock reports | | 3 | sfms | SFMS | School fees: auth, students, payments, date-range reports | | 4 | lms | LMS | Library: admin/librarian, books, students, borrow/return, reports |
The live list in the CLI is driven by templates/projects.json — add a projects[] entry and a matching templates/<templateDir>/ folder to ship another exam.
Maintainer: sync templates (required before pack/publish)
Package path: exams-p/epms/packages/create-exam-app (or your clone’s equivalent).
cd epms/packages/create-exam-app
npm run sync-all
npm run verifysync-epms— copies fromepms/backendandepms/frontendintotemplates/epms/sync-sims— copies fromsims/backendandsims/frontendintotemplates/sims/(expectssimsnext toexams-p/epmsin the repo layout)sync-sfms— copies fromsfms/backendandsfms/frontendintotemplates/sfms/(expectssfmsnext toexams-p/epmsin the repo layout)sync-lms— copies fromlms/backendandlms/frontendintotemplates/lms/(expectslmsnext toexams-p/epmsin the repo layout)
prepack runs verify so npm pack and npm publish fail if any projects.json entry has no templates/<templateDir> folder. Always run sync-all when sources change, then ship.
Publish to npm (checklist)
npm run sync-allandnpm run verify- Bump
versionin this folder’spackage.json(semver). npm never allows replacing an existing version — if publish says 403 … cannot publish over the previously published versions, increase the version (for example1.0.8→1.0.9) and publish again. npm packand inspect the tarball, ornpm publish --dry-runnpm login(scope registry if you use a scope)npm publish --access public
(Use--access publicfor an unscoped name likecreate-exam-appso it is installable without scope.)
If publish fails in prepack, run sync-all and confirm each templates/<id>/ folder exists with backend/ and frontend/.
License
MIT
