About this plugin
EM360 is a school management platform. This plugin connects a school’s WordPress website to its EM360 account, so the school owner and staff can manage the school from the school’s own website.
Staff portal. School owners and staff sign in with their EM360 account and see only the modules and menus their role allows:
- User management, roles and permissions, ID cards, consent and visitation
- Student and parent records, enrolment and CSV import
- Exams and records, results, promotion and broadsheets
- Fee management, invoices, payments and payroll
- E-learning, timetable, attendance and live classes
- Hostel, staff, health records, learner support (SEND), safeguarding and pastoral care
- Training, voting, reports and analytics, and the document designer
How it works.
- The screens are the same React screens as EM360. They run from files inside the plugin, in a frame on your own domain.
- Every request goes through the plugin’s server-side gateway. It only forwards a fixed list of operations, bound to your school and checked against the signed-in person’s permissions.
- School records stay in EM360. WordPress stores only the connection settings and encrypted session state.
- Sign-in happens on EM360, with the same password, email code and approval screen people already use.
An EM360 school account is required. A new school can register from the plugin’s setup screen.
External services
This plugin connects to EM360, the school management platform operated by HarryVille Solutions Ltd (the plugin’s author). It does not work without it.
- When: while an administrator connects the website, whenever someone signs in to a portal, and on every portal screen that loads or saves school records.
- What is sent: the website address and connection request when connecting; sign-in authorisation codes and session credentials; and the school records a signed-in user views, creates or changes (for example student, staff, attendance or fee records), including passwords typed into account-creation or password-reset forms.
- Where: the HTTPS EM360 School API address set on the plugin’s settings screen, and the EM360 sign-in website (https://em360s.com) that people are sent to when they sign in.
Some EM360 screens also load content directly from these services in the visitor’s browser:
- Agora (Agora, Inc.), the real-time video service behind EM360 live classes. It is used only when someone joins a live class. The visitor’s browser then sends Agora their camera, microphone and screen-share streams, live-class chat and in-class signals (for example a raised hand), a per-class participant ID, and connection-quality statistics. Agora’s SDK also contains an optional diagnostic log upload (to log-collector-query.dc3.agoralab.co); it is off by default and this plugin never turns it on. Terms: https://www.agora.io/en/terms-of-service/ · Privacy: https://www.agora.io/en/privacy-policy/
- Cloudflare Stream (playing and uploading lesson videos the school added). Terms: https://www.cloudflare.com/website-terms/ · Privacy: https://www.cloudflare.com/privacypolicy/
- YouTube and Vimeo (lesson videos a teacher linked from those sites). YouTube terms: https://www.youtube.com/t/terms · Google privacy: https://policies.google.com/privacy · Vimeo terms: https://vimeo.com/terms · Vimeo privacy: https://vimeo.com/privacy
- Unsplash (placeholder cover images on e-learning class cards). Terms: https://unsplash.com/terms · Privacy: https://unsplash.com/privacy
com. EM360 never uses that option, so nothing is loaded from there.
com/legal
com/legal/privacy
com/legal/acceptable-use
com/legal/data-deletion
Source code and build
The JavaScript and CSS in the versioned folders under assets/ (for example assets/user-management-v016/ ) are compiled from TypeScript and React. Their complete, human-readable source is public under GPLv2 or later:
- Repository: https://github.com/harryvilleit/em360-educational-connector
- Source of the compiled files: the ui/ folder, https://github.com/harryvilleit/em360-educational-connector/tree/main/ui (shared screens in ui/src/, WordPress code in ui/wordpress/, build settings in ui/vite.wordpress.config.ts, ui/vite.wordpress-module.config.ts and ui/vite.wordpress-rebuilt.config.ts ).
- ui/wordpress-bundles.json lists every source file behind each compiled folder.
- Every compiled file starts with a comment that links to this source.
Each compiled folder and where its entry point is:
- assets/user-management-v016/: ui/wordpress/index.html and ui/wordpress/main.tsx
- assets/rebuilt-v0172/: ui/wordpress/rebuilt/
- assets/health-v017/: ui/wordpress/health/
- assets/training-v018/, assets/learner-support-v019/, assets/voting-v020/, assets/reports-v021/, assets/safeguarding-v022/, assets/document-designer-v022/: ui/wordpress/training/, ui/wordpress/learner-support/, ui/wordpress/voting/, ui/wordpress/reports/, ui/wordpress/safeguarding/ and ui/wordpress/document-designer/
css are not compiled.
js 20 or later), from a clone of the repository:
cd ui && npm ci && npm run build:wordpress
This writes the compiled folders into plugin/assets/.