ThemeParkDatabase is a multi-portal theme park management project with:
- a MySQL database schema and seed scripts
- several Node.js backend services (admin, employee, HR, maintenance, retail, homepage, visitor)
- static frontend portals (homepage, admin, employee, HR, maintenance, visitor)
This README is written as a full setup manual so someone downloading the project cold can run it.
README.md- this installation and project guidepackage.json/package-lock.json- root-level Node dependenciesvercel.json- rewrite rules for frontend route mapping in Vercel.gitignore- ignored files list
sql files/Dump20260401.sql- main SQL dump / base datasetsql files/queries.sql- reference SQL queriessql files/retail_schema.sql- retail schema updatessql files/retail_triggers.sql- retail-related triggerssql files/retail_view.sql- retail SQL viewssql files/homepage_users_seed.sql- homepage/login-related seed userssql files/admin_seed_employee_hr_manger_visitors.sql- admin/employee/HR/visitor seed datasql files/hr_portal_activites.sql- HR portal activity tables/datasql files/visitor_ticket_type_migration.sql- visitor ticket type migrationsql files/visitor_views_and_triggers.sql- visitor views and trigger logicsql files/visitor_portal_feature_upgrade.sql- visitor feature upgrade changessql files/visitor_portal_area_content_seed.sql- visitor area content seed datasql files/visitor_presentation_seed_mysql.sql- optional presentation/demo seed data
backend/adminBackend/- admin portal API and reporting backendbackend/employeebackend/- employee portal API backendbackend/hrmanager/- HR manager backend routes and APIsbackend/homepageBackend/- homepage/auth backendbackend/maintenanceBackend/- maintenance portal backendbackend/retailbackend/- retail backend and static retail frontend underpublic/retailfront/backend/visitorbackend/- visitor API, auth, and seeding scripts
frontend/homepageFrontend/- homepage UIfrontend/adminFrontend/- admin portal UIfrontend/employeefrontend/- employee portal UIfrontend/hrfrontend/- HR portal UIfrontend/maintenanceFrontend/- maintenance portal UIfrontend/visitorfrontend/- visitor portal UIfrontend/src/- shared frontend helper modules
Install these first:
- Node.js 18+ (Node 20 LTS recommended)
- npm (comes with Node)
- MySQL 8.0+ (MySQL Workbench recommended for importing
.sqlfiles) - A browser (Chrome/Edge/Firefox)
- Download or clone the project.
- If you downloaded a zip, unzip it.
- Open the project folder:
ThemeParkDatabase/
- Open MySQL Workbench (or mysql CLI).
- Create a database (example):
newthemepark
- Select/use that database.
Run/import SQL files in this order to avoid missing-table/view errors:
sql files/Dump20260401.sqlsql files/retail_schema.sqlsql files/retail_triggers.sqlsql files/retail_view.sqlsql files/homepage_users_seed.sqlsql files/admin_seed_employee_hr_manger_visitors.sqlsql files/hr_portal_activites.sqlsql files/visitor_ticket_type_migration.sqlsql files/visitor_views_and_triggers.sqlsql files/visitor_portal_feature_upgrade.sqlsql files/visitor_portal_area_content_seed.sql- (Optional demo data)
sql files/visitor_presentation_seed_mysql.sql
Create one Render Web Service per backend folder:
backend/adminBackendbackend/employeebackendbackend/hrmanagerbackend/homepageBackendbackend/maintenanceBackendbackend/retailbackendbackend/visitorbackend
For each Render service:
- Set the root directory to the backend folder.
- Build command:
npm install - Start command:
npm start - Add environment variables (DB host/user/password/database, JWT secrets, CORS/frontend origin where needed).
Use the same MySQL database credentials across all services so every portal uses the same data.
- Push code to your GitHub repo.
- Connect the repo to Render.
- Deploy each backend service.
- Confirm each service has a live Render URL (for example:
https://your-service-name.onrender.com).
- Import this repository into Vercel.
- Keep
vercel.jsonrewrite rules enabled. - Deploy the project.
- Confirm the Vercel production URL loads the homepage and portal routes:
//admin/employee/hr/maintenance/visitor
Frontend files already reference deployed Render backend URLs. Verify the URLs are correct in:
frontend/visitorfrontend/app.jsfrontend/maintenanceFrontend/app.jsfrontend/maintenanceFrontend/portal.jsfrontend/hrfrontend/app.jsfrontend/adminFrontend/index.html(admin-api-originmeta tag)frontend/homepageFrontend/main.js
If a backend URL changes, update it in the corresponding frontend file and redeploy on Vercel.
- MySQL database created and SQL files imported
- All backend services deployed on Render
- Render environment variables are configured correctly
- Frontend deployed on Vercel with
vercel.jsonrewrites - Frontend routes load correctly
- Frontend API calls to Render backends succeed
- Requires internet for some external CDN assets/fonts used by frontend pages.
- Requires Node.js 18+ for modern syntax and backend compatibility.
- Keep JWT secrets and DB credentials private (do not commit
.envfiles).