Our Vision
To be a leading Ethiopian school that nurtures confident, ethical, and capable learners prepared for a changing world.
Excellence in Learning · Character · Community
To be a leading Ethiopian school that nurtures confident, ethical, and capable learners prepared for a changing world.
Deliver quality education through strong academics, caring teachers, and close partnership with parents — so every child can succeed.
Hasset Academy serves early childhood and primary learners across our branches. This EMIS helps staff manage registration, marks, attendance, timetables, and report cards in one secure place.
Hasset Academy
Addis Ababa, Ethiopia
Phone: —
Email: —
© Hasset Academy · Unified EMIS
Choose your role, then enter your details
Secure role-based access · Teachers · Parents · Staff
Unified school system
Welcome back
Live snapshot of students, teaching, marks, and attendance.
Jump to everyday school tasks
Students by branch (live roster)
Live summary from registered students, marks, and daily attendance. Filter by branch, class (grade), and section. Use Result Analysis for full tables; charts update when you open Overview or click Refresh.
Students by overall average vs 50% / 75% of scale
Daily status counts across filtered roster
Each subject: students above vs below threshold (filtered roster with marks)
| Subject | ≥50% (pass) | <50% (fail) | Total marked | Pass % |
|---|---|---|---|---|
| Refresh charts | ||||
Top students by average (up to 40) × subjects — respects branch, class, and section filters
Change your own password, or (admin) reset another user’s password by selecting their account.
Logged in as: —
Select the user account, then set a new password (no need for their current password).
Automatic local snapshots protect against accidental loss. Use the "⬇ Backup all data" button at the top of every page to save everything to one file — copy that file to USB weekly, or open it on another computer and click "⬆ Restore" to bring all the data over at once.
Download school data and setup files. Replace placeholders when you copy files to this computer.
hasset-api.zip next to this HTML or into XAMPP htdocs]
Connect one free cloud URL on each device. With Auto-sync on, changes upload automatically and other phones/PCs download them in the background — no USB copy needed.
/exec URL on every device → Upload once from the main PC.
Leave this page open via http:// (not file://) so the browser allows sync.
Optional second secret. When set, changing the cloud URL, uploading, or downloading requires this PIN (in addition to admin login). Protects the shared database if someone uses an unlocked admin session.
Hasset database API:
http://localhost/hasset-api/sync.php
(copy hasset-api into XAMPP htdocs). Other PCs:
http://OFFICE-PC-IP/hasset-api/sync.php.
Use Test connection after the API is running.
Same Wi‑Fi: use school PC IP for the HTML page (e.g. http://192.168.x.x:8080/...).
Do not double‑click the HTML file (file://). Browsers block cloud sync from local files. Start a small local server instead:
Windows (Command Prompt or PowerShell)
Hasset_Academy_Unified_EMIS.html into a folder (e.g. C:\Hasset)cmd → Enterpy -m http.server 8080
python -m http.server 8080
python3 -m http.server 8080
http://localhost:8080/Hasset_Academy_Unified_EMIS.htmlStart_Hasset_Server.bat (same folder as the HTML). If the browser says refused to connect, the server window is not running or was closed.Mac / Linux (Terminal)
cd to the folder that contains the HTML filepython3 -m http.server 8080http://localhost:8080/Hasset_Academy_Unified_EMIS.htmlOther options: VS Code “Live Server” extension, or npx --yes serve -p 8080 if Node.js is installed.
Other computers on the same Wi‑Fi can use http://<office-pc-ip>:8080/Hasset_Academy_Unified_EMIS.html
(firewall must allow port 8080). For true multi‑site sharing, still use Cloud URL below.
Hasset_Cloud_AppsScript.js → Save/exec into Cloud endpoint URL abovehttp://localhost:8080/... (Step A)Prefer JSONBin: create a bin at jsonbin.io, use the bin URL, paste the Master Key, auth = X-Master-Key.
This EMIS currently runs entirely in the browser (localStorage + session tokens). That is fine for a single desk or pilot, but is not production-grade for a multi-campus school. When you move to a real server:
httpOnly + Secure + SameSite session cookies (or short-lived JWT access tokens + rotating refresh tokens).hasset_registrations_v1,
hasset_fees_v1,
hasset_marks_v1,
hasset_emis_users_v2,
hasset_emis_timetable_v1,
hasset_emis_attendance_v1.
Session/token stores (hasset_emis_session_v2, hasset_emis_tokens_v1) should not be copied to the server — re-issue sessions after cut-over.API_BASE_URL at your backend, and force re-login for all users.Until then, treat this file as a single-device or trusted-network tool. Change default passwords after first login.
Class totals by gender, subject pass rates, semester / yearly averages, failing-subject counts, and top 10 rankings by branch.
Scale: Quarters (Q1–Q4) out of 50 (pass ≥25 = 50%). Semester 1/2 and Yearly average out of 100 (pass ≥50 = 50%). Also marks 75% of scale (37.5 on /50; 75 on /100). Use the same academic year as Marks & Cards.
| Branch | Grade | Section | Male | Female | Total |
|---|---|---|---|---|---|
| Run analysis | |||||
One row per subject across the filtered students — pass/fail counts and bar interpretation.
| Subject | Pass ≥50% M | Pass ≥50% F | Pass total | Fail <50% M | Fail <50% F | Fail total | Pass % | Mean mark |
|---|---|---|---|---|---|---|---|---|
| Run analysis | ||||||||
Rows = students (filtered roster). Columns = subjects. Colour shows mark vs period scale (red low → green high). Average column on the right.
Mean mark per subject across Q1 → Q2 → Q3 → Q4 (each /50) for the filtered students and academic year. Trend compares first available quarter mean to last. Sem1/Sem2 columns use /100 scale for reference.
Bar chart: net change in mean (last quarter − first quarter) in percentage-points of the /50 scale.
| Subject | Q1 mean | Q2 mean | Q3 mean | Q4 mean | Spark | Δ (last−first) | Trend | Sem1 mean | Sem2 mean | n (max) |
|---|---|---|---|---|---|---|---|---|---|---|
| Run analysis | ||||||||||
| Branch | Grade | Section | Avg <50% | Avg ≥50% | Avg ≥75% | M <50% | F <50% | M ≥50% | F ≥50% | With marks |
|---|---|---|---|---|---|---|---|---|---|---|
| Run analysis | ||||||||||
| Branch | Grade | Section | 1 subject M/F | 2 subjects M/F | 3+ subjects M/F | Total failing ≥1 |
|---|---|---|---|---|---|---|
| Run analysis | ||||||
Top 10 students in every branch · grade · section (by average for the selected period).
Paste the Web App URL from your shared Google Sheet (see the setup guide) so every computer reads and writes the same list of registrations instead of keeping separate copies.
Download a filtered or full backup, then restore on another computer. Choose how to apply a backup file:
Important: openSIS is a separate PHP + MySQL application. It cannot run inside this HTML file. Install openSIS on a school server (or XAMPP), then use this panel to open it and export Hasset data in import-friendly CSV form.
github.com/OS4ED/openSIS-Classic ·
After install, set marking periods (Q1–Q4), grade levels, and grade scale, then import the student CSV.
Marks usually need manual or scripted import into openSIS gradebook / final grades.
Each button below clears only that one category from this computer. If this computer is connected to a shared Google Sheet, the data still exists there and will reload the next time this page syncs — this only clears the local copy. A password is required before anything is cleared, so an accidental click won't delete data.
| Student ID | Name | Branch | Grade | Section | Guardian phone | |
|---|---|---|---|---|---|---|
| No students registered yet. | ||||||
Fees are tracked per term — Term 1 through Term 4 of the academic year.
| Student ID | Name | Grade | Term 1 | Term 2 | Term 3 | Term 4 | Balance |
|---|---|---|---|---|---|---|---|
| No fee records yet. | |||||||
Choose branch, grade, and subject. All grades: one mark per subject — every quarter out of 50. First Semester = Q1+Q2 (/100); Second Semester = Q3+Q4 (/100); Yearly = both semesters + annual average. Primary (Grades 1–6 / 1–8): numeric marks only — no letter grade column. KG Number 1 & 2: letter grades (ሀ/ለ/ሐ/መ · A–D for English) shown beside the mark. Conduct and Absent apply to the whole quarter. Save once for the class. Marks use two digits after the decimal point.
Select grade and subject (and optionally branch) to list all students.
| Student ID | Name | Section | Mark (/50) | Grade | Conduct | Absent (days) |
|---|---|---|---|---|---|---|
| Choose grade and subject to show students. | ||||||
Admin sets a password per grade (optional section). Teachers must unlock before entering marks. Teachers only see subjects/grades assigned on their account.
Enter ፀባይ (Conduct) and ቀሪ (Absent days) for every student in a class for the selected quarter. These values are stored on the quarter (shared across all subjects) and appear on the roster and report card.
Select grade and quarter to list students.
| Student ID | Name | Section | Conduct (ፀባይ) | Absent days (ቀሪ) |
|---|---|---|---|---|
| Choose grade and quarter. | ||||
Filter by branch, grade and section. Primary (Grades 1–6 and 1–8): marks only — no letter grades. Letter grades (ሀ/ለ/ሐ/መ · A/B/C/D for English) apply only to KG Number 1 & 2 (Pre-KG / KG / Prep). Each quarter is out of 50. First Semester = Q1+Q2 (/100); Second Semester = Q3+Q4 (/100); Yearly Roster = First Sem + Second Sem + Annual average. KG: semester/yearly roster uses ጭብጥ themes + English + አማካይ + ፀባይ — no total sum.
Select a grade and quarter to view the roster.
Printable report card with the school grading system (ሀ / ለ / ሐ / መ · English A / B / C / D). Quarters are /50; First & Second Semester are Q1+Q2 and Q3+Q4 (/100); Yearly shows both semesters and the annual average. Filter by branch, grade and section. Print one student or every student matching the filters (two per page).
Landscape places two report cards left & right on one A4 page (best for bulk print).
Transcript uses the Quarter filter above (one period). Leaving Certificate needs a selected student. Report card header stays dark blue; subject headers and rank use light fill for clearer black-and-white print.
Define weekly lessons → auto-generate schedule → check conflicts → print (aSc-style workflow)
| Branch | Grade | Sec | Subject | Teacher | Subject /week | Class total | Week total | |
|---|---|---|---|---|---|---|---|---|
| No lessons defined yet. Add subjects above. | ||||||||
Hard rules always apply when checked. Soft rules may be relaxed only if a lesson cannot be placed otherwise. Settings are stored in this browser.
Subjects with fewer weekly periods cannot appear twice on one day.
Soft limit; raised automatically if placement fails.
Even for high-load subjects, cap repeats on one day.
Select a grade, define lessons, then click Auto-generate.
Block periods when a teacher is unavailable. Auto-generate will never place them in these slots. Weekends (Sat–Sun) are already free.
| Teacher | Day | Period | Time | |
|---|---|---|---|---|
| No restrictions yet. | ||||
Mark present / absent / late / excused for each class. Data syncs with shared database when connected.
Select grade and date, then click Load class. Roster is the registered student list for that branch/grade/section.
Absent days on the Marks roster & report cards can be filled from daily attendance (status = Absent).
Monthly summary for a class — useful for parents and office records
Choose grade and month, then Build report.
Add or edit teacher login accounts and subject allocation
| Name | Username | Subjects | Timetable periods | ||
|---|---|---|---|---|---|
| No teachers yet. | |||||
Admin creates one account per branch. Set Username and Password together — that is what the branch user types at login. They only see their branch data.
Choose a username for this branch account, then set the account password.
| Name | Username | Branch | Role | |
|---|---|---|---|---|
| No branch accounts yet. | ||||
Only your own results are shown, linked to your student ID. Choose a quarter and print.
Select a quarter to preview your report card.
Information for your child only · Hasset Academy
Parent login shows report card only.
Tip: On your phone, open the same EMIS link, choose Parent, enter Student ID + guardian phone.
Official report card layout — same design the school prints. Choose period, then print.
Loading official report card…
Records for your child (read-only).
Loading…
Payment status for your child (read-only).
Loading…
Weekly schedule for your child’s grade and section (read-only).
Loading…