HA

Sign in

Hasset Academy EMIS

Unified school system

User Admin

Android app (teachers & parents)

One app for all roles โ€” after login you only see menus for your account.

  1. Quick: Chrome โ†’ menu โ‹ฎ โ†’ Install app / Add to Home screen
  2. Real APK: open folder android-app in Android Studio โ†’ Build APK (see ANDROID-APP-BUILD.txt)

Welcome back

School command centre

Live snapshot of students, teaching, marks, and attendance.

โ€”
Sync: โ€”
Students
0
Registered
Boys / Girls
โ€”
From roster
Teacher accounts
0
On timetable: 0
Mark lists
0
Saved class lists
Fee records
0
Payment entries
Attendance today
โ€”
Present / taken

Quick actions

Jump to everyday school tasks

Branch snapshot

Students by branch (live roster)

No students yet

Todayโ€™s focus

Upload a full backup regularly so every PC stays recoverable.
Connect cloud sync once โ€” then phones and PCs share the same data.
Teachers only see marks for subjects assigned on their account.
0

Live accounts & teacher activity

Who is signed in (last 15 minutes), which teachers took attendance today, marks entered, worksheets and messages sent. Branch managers see only their campus.

Open Overview as admin or branch to load activityโ€ฆ

Result & attendance dashboard

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.

Average bands

Students by overall average vs 50% / 75% of scale

No data yet

Attendance (last 30 days)

Daily status counts across filtered roster

No data yet

Subject pass rates (โ‰ฅ50%)

Each subject: students above vs below threshold (filtered roster with marks)

No data yet
Subjectโ‰ฅ50% (pass)<50% (fail)Total markedPass %
Refresh charts

Student performance heatmap

Top students by average (up to 40) ร— subjects โ€” respects branch, class, and section filters

Enter academic year and refresh

Two-factor authentication (2FA)

Protect admin, branch and teacher accounts with an authenticator app (Google Authenticator, Microsoft Authenticator, Authy).

1. Scan this key in your authenticator app (or enter it manually):

2. Enter the 6-digit code from the app to confirm:

Branch login accounts

Create a login for each campus (KG1, KG2, Primaryโ€ฆ). Open the full form on the Teachers page, or use the same fields below.

Android app (teachers & parents)

One app for all roles. After login, each account only sees its own menus (teacher, parent, branch, admin).

  1. Fast install (no APK): open this portal in Chrome on the phone โ†’ menu โ‹ฎ โ†’ Install app / Add to Home screen.
  2. Real APK: open folder android-app from the school package in Android Studio โ†’ Build APK โ†’ install on phones. See ANDROID-APP-BUILD.txt.

App opens https://hassetacademy.com.et/portal.html with the same secure login.

Automatic cloud backups

Every cloud save creates a snapshot on the school server (hasset-backups/). Last 30 auto files + one daily file are kept. This works even when office PCs are off.

Also download a full backup to USB/Drive weekly (header Backup). Optional host cron: ?autobackup=1 once per day.

SMS to parents (optional)

When staff send a parent message in EMIS, also try SMS to guardian phones on the student record. Uses Africa's Talking (common in Ethiopia) or a generic HTTP SMS API. Token stays on the server in sms-config.json.

SMS text is prefixed with branch, e.g. [Hasset Academy - KG1]. Apply for Sender ID Hasset Academy with Ethio Telecom for all branches.

Phones use student guardian phone fields. Ethiopian numbers like 09xxxxxxxx are sent as 2519xxxxxxxx.

Telegram bot

Send login invites and school notices through a Telegram bot. Token stays on the server. Parents/teachers must open the bot once and press Start.

Important: Do not type @Hasset_academybot in the test box. That is the bot itself. Paste a numeric chat ID from โ€œLoad chatsโ€.

Health URL: https://hassetacademy.com.et/telegram-bot.php?health

Passwords

Change your own password, or (admin) reset another userโ€™s password by selecting their account.

A. Change my password

Logged in as: โ€”

B. Admin โ€” reset another account

Select the user account, then set a new password (no need for their current password).

Data safety

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.

No automatic snapshot yet.

Downloads

Download school data and setup files. Replace placeholders when you copy files to this computer.

Full data backup Students, fees, marks, users โ€” one file
Students CSV openSIS-style import columns
Marks CSV Long format (student ยท quarter ยท subject)
Database API package [Download link placeholder โ€” copy hasset-api.zip next to this HTML or into XAMPP htdocs]
Custom download

Always-on school cloud (configure once โ†’ works from anywhere)

One shared database for every branch, phone, and PC. After the one-time setup below, every device that opens this website auto-connects, downloads, and keeps syncing โ€” no typing cloud URLs on each phone.

One-time setup (~5 minutes) โ€” then automatic forever:
  1. Open script.google.com โ†’ New project
  2. Paste Hasset_Cloud_Backend.js from this package โ†’ Save
  3. Deploy โ†’ New deployment โ†’ Web app โ†’ Execute as Me โ†’ Who has access Anyone โ†’ Deploy
  4. Copy the URL ending in /exec
  5. On the server, edit cloud-config.json (same folder as index.html): set "upstream" to that /exec URL, keep "url" as your https://yourdomain/cloud-proxy.php, and "autoSync": true
  6. On the main office PC only: open this portal โ†’ Overview โ†’ confirm Cloud URL is the proxy โ†’ Save & connect โ†’ Upload now once

After that: any phone or PC anywhere only opens https://yourdomain/ (or Portal). It reads cloud-config.json, connects through the proxy, downloads shared data, and auto-syncs every ~30 seconds โ€” including materials, messages, quizzes, marks, and attendance. Open via https:// or http://, never file://.

Sync PIN protection Not set

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/...).

Cloud: not configured โ€” each computer has its own data only
If Google / Cloud does not work โ€” use these instead:
  1. Option 1 (easiest, always works): On Registration page use Download backup (.json), copy the file to USB / WhatsApp / Google Drive, on the other PC open EMIS and Restore from backup. Same for fees & marks inside that one file.
  2. Option 2 (simple online): Free account at jsonbin.io โ†’ create a bin โ†’ put bin URL above โ†’ Auth = X-Master-Key โ†’ paste Master Key โ†’ Save & connect โ†’ Upload now.
  3. Option 3 (same Wiโ€‘Fi only): Keep data on one office PC; other staff use that PC, or share via backup file daily.
Step A โ€” Run on localhost (required if cloud download fails)

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)

  1. Copy Hasset_Academy_Unified_EMIS.html into a folder (e.g. C:\Hasset)
  2. Open that folder in File Explorer โ†’ click the address bar โ†’ type cmd โ†’ Enter
  3. Run one of these:
    py -m http.server 8080
    or python -m http.server 8080
    or python3 -m http.server 8080
  4. In Chrome/Edge open: http://localhost:8080/Hasset_Academy_Unified_EMIS.html
  5. Leave the black window open while you use the system. Press Ctrl+C to stop the server later.
  6. Easier: doubleโ€‘click Start_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)

  1. cd to the folder that contains the HTML file
  2. Run: python3 -m http.server 8080
  3. Open: http://localhost:8080/Hasset_Academy_Unified_EMIS.html

Other 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.

Step B โ€” Free Google Apps Script (shared database for all school PCs)
  1. Open script.google.com โ†’ New project
  2. Paste the contents of Hasset_Cloud_AppsScript.js โ†’ Save
  3. Deploy โ†’ New deployment โ†’ Web app โ†’ Execute as Me โ†’ Who has access: Anyone
  4. Copy the URL that ends with /exec into Cloud endpoint URL above
  5. Auth style: No auth header ยท Auto-sync: ON ยท Save & connect
  6. Main PC: Upload now. Other PCs: same URL โ†’ Save & connect (or Download now)
  7. If download fails, use Test connection and ensure you opened the app via http://localhost:8080/... (Step A)

Prefer JSONBin: create a bin at jsonbin.io, use the bin URL, paste the Master Key, auth = X-Master-Key.

Server-side migration note

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:

  • Auth: Replace client PBKDF2 with server-side password hashing (e.g. Argon2id / bcrypt). Issue httpOnly + Secure + SameSite session cookies (or short-lived JWT access tokens + rotating refresh tokens).
  • Do not put passwords or long-lived secrets in URLs. Keep invite links as one-time server-validated tokens with expiry.
  • API: Expose REST/GraphQL endpoints for students, fees, marks, attendance, timetable. The browser becomes a client only.
  • Data export: Use Backup & restore / CSV export on Registration and Fees pages to extract current local data, then import into the server database (Postgres/MySQL).
  • localStorage keys to migrate: 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.
  • Cut-over: Put the app behind HTTPS, disable local-only mode, point a config 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.

Result Analysis

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.

1. Class enrolment by gender

BranchGradeSectionMaleFemaleTotal
Run analysis

2. Subject results by class (โ‰ฅ50% / <50%)

Run analysis to load subject tables.

2b. Overall by subject (all classes in filter)

One row per subject across the filtered students โ€” pass/fail counts and bar interpretation.

Run analysis
SubjectPass โ‰ฅ50% MPass โ‰ฅ50% FPass total Fail <50% MFail <50% FFail totalPass %Mean mark
Run analysis

2c. Student performance heatmap

Rows = students (filtered roster). Columns = subjects. Colour shows mark vs period scale (red low โ†’ green high). Average column on the right.

Run analysis to build the heatmap.

2d. Subject-wise performance trends

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.

Run analysis

Bar chart: net change in mean (last quarter โˆ’ first quarter) in percentage-points of the /50 scale.

Subject Q1 meanQ2 meanQ3 meanQ4 mean Spark ฮ” (lastโˆ’first) Trend Sem1 meanSem2 mean n (max)
Run analysis

3. Average bands (First Semester / Yearly roster scale)

BranchGradeSection Avg <50%Avg โ‰ฅ50%Avg โ‰ฅ75% M <50%F <50%M โ‰ฅ50%F โ‰ฅ50% With marks
Run analysis

4. Students below 50% by number of subjects (by class & gender)

BranchGradeSection 1 subject M/F2 subjects M/F3+ subjects M/F Total failing โ‰ฅ1
Run analysis

5. Top 10 โ€” by each class

Top 10 students in every branch ยท grade ยท section (by average for the selected period).

Run analysis

6. Top 10 โ€” Grades 1โ€“4 (primary band)

Run analysis

7. Top 10 โ€” Grades 5โ€“8 (primary band)

Run analysis
Registration recorded. Student ID assigned below.

Student Information

As it should appear on official records.

No photo

Photos are stored on the server (URL only in student record).

Guardian & Contact

Primary contact for school communication.

Academic Placement

Determines the student's branch and class.

Review & Confirm

Check the details before generating the student ID.

Registration Complete

Student saved. Continue registering the next student below.

ID cards are printed from the student list below โ€” use "Print ID cards (matching filters)" for one or many students at once.

School logo on ID card

Upload your school logo. It appears on the header and on every printable student ID card.

Logo

Connect other computers Not connected โ€” saving to this computer only

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.

Backup & move to another browser or computer Registrations, school fees, and mark lists live only in this browser unless you back them up or connect the shared sheet above.

Download a filtered or full backup, then restore on another computer. Choose how to apply a backup file:

openSIS integration (OS4ED) Bridge to the open-source Student Information System. Hasset stays your mark/report engine; openSIS can hold multi-user registry, attendance & scheduling when you host it.

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.

Suggested install (Community Edition): Apache 2.4+, PHP 8.x, MySQL 5.7/8 or MariaDB 10.4+ ยท Source: 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.
Do not copy Hasset password hashes into openSIS โ€” create new user accounts there.

Clear saved data Removes data saved on this computer only. This cannot be undone.

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.

Registered Students

0 students

MySQL students (Option 2)

MySQL auto-sync: students, marks, attendance, messages, teachers/users, timetable, library, quizzes, and other EMIS data save automatically when MySQL is connected. Local data stays as backup.

Students by grade โ€” Male / Female / Total

Counts follow the branch filter. The summary button opens a clean Grade ยท Male ยท Female ยท Total table (no student list).

No students yet. Choose a branch filter or register students.

Type a name or ID, then click Search to show matching students.

Student IDNameBranchGradeSectionGuardian phone
No students registered yet.
None selected
Student IDs follow the HA-YYYY-### convention. Registrations are saved automatically in this browser so they survive closing and reopening the page. By default that's local to this one computer โ€” use "Connect other computers" above to link every registration desk to the same shared list (see the setup guide). To move everything to another computer, use the "โฌ‡ Backup all data" / "โฌ† Restore" buttons at the top of every page โ€” one click downloads students, fees, marks, timetable, and attendance together in one file; open that same file on the other computer and click Restore. (The filtered "Backup & move to another browser or computer" panel below still works for a branch/grade/date-limited export that merges instead of replacing.) Use "Export CSV for SMS import" to bring the batch into the Students sheet of the School Management System, then "Clear saved data" once it's safely imported.

Record a Fee Payment

Fees are tracked per term โ€” Term 1 through Term 4 of the academic year.

Fee Status by Student

0 students
Student IDNameGradeTerm 1Term 2Term 3Term 4Balance
No fee records yet.
Amounts are per term. "Balance" totals every term's (due โˆ’ paid) across the whole academic year for that student. Fee records are saved locally in this browser only โ€” they are not part of the Google Sheet sync used for registrations.

Teacher portal: You may teach different subjects in different grades/sections. Choose branch โ†’ grade โ†’ section to see only subjects assigned to that class, or use Download ALL my assigned mark lists (one Excel sheet per subject ร— class ร— section). Assignments come from the Teachers page and the lesson plan/timetable. Conduct & Absent is only for the assigned homeroom teacher. Roster, report cards, and Library are admin/branch only.

Enter Marks โ€” by class & subject

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.

Students in this class

0 students
Student ID Name Section Mark (/50) Grade Conduct Absent (days)
Choose grade and subject to show students.
Printable mark list (uses Branch ยท Grade ยท Section ยท Subject filters above)

Report cards always show a comment: your text if entered, otherwise an automatic comment based on the studentโ€™s result.

Class password & import

Admin sets a password per grade (optional section). Teachers must unlock before entering marks. Teachers only see subjects/grades assigned on their account.

Import marks (Excel or CSV) Admin, branch, and teacher accounts can import. Branch users only import marks for students in their branch. Teachers: subject list shows only subjects assigned to you (Teachers page and/or lesson plan). Choose one subject or All my assigned subjects, then download Excel โ†’ fill Score โ†’ Import. Reset class = selected filters; Reset ALL = admin only.

Conduct & Absent โ€” by quarter

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.

Class list

0 students
Student ID Name Section Conduct (แ€แ‰ฃแ‹ญ) Absent days (แ‰€แˆช)
Choose grade and quarter.

Quarter Roster

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.

Report Card

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.

Pre-KG / KG / Prep subjects: แŒแˆˆแˆฐแ‰ฃแ‹ŠแŠ“ แŠฅแŠ“ แˆ›แˆ…แ‰ แˆซแ‹Š แŠฅแ‹ตแŒˆแ‰ต, แ‹จแ‰‹แŠ•แ‰‹ แŠฅแŠ“ แ‰ฐแŒแ‰ฃแˆซแ‰ต แŠฅแ‹ตแŒˆแ‰ต, English, แ‹จแŠ แŠจแ‰ฃแ‰ข แˆฃแ‹ญแŠ•แˆต, แ‹จแŒคแŠ“ แŠฅแŠ“ แ‹จแŠ แŠซแˆ แˆ˜แ‹ณแ‰ แˆญ, แ‹จแˆ’แˆณแ‰ฅ แˆตแˆŒแ‰ต, แ‹จแŠญแ‹ˆแŠ“ แŠฅแŠ“ แ‹จแ‹•แ‹ญแ‰ณ แŒฅแ‰ แ‰ฅ. Grades 1โ€“6: Amharic, English, Afan Oromo, Maths, Environmental Science, PVA, Moral, HPE. Grades 7โ€“8 add General Science, Social Studies, Citizenship, IT, CTE. All grades: every quarter /50 when entering marks (two decimal places). First Semester = Q1+Q2 (/100); Second Semester = Q3+Q4 (/100); Yearly = both + annual average. Letter grades: /50 โ†’ 45/35/25; /100 โ†’ 90/70/50. Prep semester roster uses themes แ‰ฐแŠญแˆŽแ‰ฝ / แˆ˜แŒ“แŒ“แ‹ฃ / แ‹‹แˆแ‹ซ and แˆ…แ‹‹ / แ‹‰แˆƒ / แ‹จแŒแ‰ฅแˆญแŠ“ แŠฅแŠ•แˆตแˆณ. Marks are stored with the rest of EMIS data (local + optional cloud backup).

Timetable Generator

Define weekly lessons โ†’ auto-generate schedule โ†’ check conflicts โ†’ print (aSc-style workflow)

1. Lesson plan (subjects + teacher + lessons/week)

BranchGradeSecSubjectTeacherSubject /weekClass totalWeek total
No lessons defined yet. Add subjects above.

Teacher quick plan โ€” subjects, grades, sections and lessons/week. Tick and save all at once.

2. Generate weekly timetable

Click an empty period cell to assign subject + teacher manually (with conflict warning). Use Edit on filled cells. Swap mode exchanges two periods.

Advanced timetable constraints

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.

Hard constraints
Soft constraints (preferred)

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.

View: Click first period, then second to swap

Select a grade, define lessons, then click Auto-generate. Click cells to add/edit ยท Del to remove (aSc-style).

Add / edit single period

Teacher time-off & period restrictions

Block periods when a teacher is unavailable. Auto-generate will never place them in these slots. Weekends (Satโ€“Sun) are already free.

TeacherDayPeriodTime
No restrictions yet.

Live attendance tracking loads when you open this pageโ€ฆ

Daily attendance

Mark present / absent / late / excused for each class. Saves push to the cloud immediately for real-time tracking across devices.

Select grade and date, then click Load class. Roster is the registered student list for that branch/grade/section.

After loading: edit status/note โ†’ Save ยท Delete removes one student for that day ยท Delete all for this day clears the class.

Absent days on the Marks roster & report cards can be filled from daily attendance (status = Absent).

Previous saved attendance

Delete one class-day or Delete ALL previous attendance. Dates show in Ethiopian calendar; save time uses Ethiopian local time (EAT).

Open this page to load historyโ€ฆ

Attendance report

Monthly summary for a class โ€” useful for parents and office records

Choose grade and month, then Build report.

Attendance trends

Analyze present rate, weekly movement, grades with lower attendance, and students with frequent absences. Based on saved daily attendance (school days only).

Choose filters and click Analyze trends.

Teacher attendance

Track staff presence by day. Admin and branch can mark Present / Absent / Late / Excused. Separate from student attendance.

Teacher Branch Subjects Status Note Saved by
Choose date and click Load teachers.

Upload a worksheet

Add a worksheet for parents/students of a specific grade to download.

Worksheets

All uploaded worksheets.

TitleSubjectGradeBranchUploaded
No worksheets yet.

Add class material

Books, lecture notes, or video links for a grade (Google Drive / YouTube links work).

Class materials

TitleTypeGradeSubjectLink
No materials yet.

Teacher โ†” Parent messages

Messages are limited by branch, grade, and section. Each message shows the exact date and time. Parents only see messages for their childโ€™s branch/class.

Parents may only message their branch office or a specific teacher.

You can write in English or แŠ แˆ›แˆญแŠ›. Date & time are saved automatically.

Inbox

Filter your inbox (admin/branch/teacher). Parents always see only their branch, grade, section, and child.

Date & timeFromToBranch / ClassStudentMessage
No messages yet.
Admin: all messages ยท Branch: messages for their campus ยท Teachers: only their own sent messages (per row Delete)

Staff payroll

Record staff salary, allowance, and deductions. Process a monthly run and print the register. Branch managers only see their campus.

โ€”

Staff register

NameRoleBranchBankSalaryAllowanceDeduction
Loadingโ€ฆ

Recent payroll runs

PeriodBranchStaffTotal netProcessed
โ€”

School library

Catalog books and track loans / returns. Teachers may view; admin and branch manage the catalog.

Loan a book

Catalog

TitleAuthorCategoryCopiesAvailable
โ€”

Open loans

BookBorrowerIDLoaned
โ€”

Admissions CRM

Track prospective students from first contact to enrollment. Move each lead through the pipeline.

Pipeline

ChildGradeParentPhoneBranchStatusUpdated
โ€”

Mobile app (store-grade path)

Install Hasset EMIS on phones like an app. Parents and teachers can use the same portal in full-screen mode.

  1. Open https://hassetacademy.com.et/portal.html in Chrome (Android) or Safari (iPhone).
  2. Tap browser menu โ†’ Install app or Add to Home Screen.
  3. Sign in with your school username and password (same as the web portal).
Android Studio / Play Store guide

If the Install button does not appear, use the browser menu โ€œAdd to Home screenโ€.

Play Storeโ€“style APK

A WebView Android project is included in android-app/. Build a signed APK/AAB in Android Studio and publish to Google Play when ready. The app opens the live portal so data stays on your cloud.

  • Package: open deploy/android-app in Android Studio
  • Set portal URL to https://hassetacademy.com.et/portal.html
  • Generate signed bundle โ†’ upload to Play Console

Admin recovery (private)

Recovery details are never shown on screen. They are only sent by email to the school recovery address.

Security / Two-factor authentication

Require an authenticator app code after your password. Recommended for all staff accounts.

1. Add this secret in Google Authenticator / Microsoft Authenticator / Authy:

2. Enter the 6-digit code to confirm:

Live classroom quiz / exam

Teachers and admin create quizzes or live exams. Students take each quiz once; scores show in the results table below (not on the official marks list). English or Amharic. Format: Question | A | B | C | D | CorrectLetter (Aโ€“D or แˆ€ แˆˆ แˆ แˆ˜)

Your quizzes

Start live quiz for the class, edit by deleting and recreating, or take a practice run.

Quiz / live exam results

Students may take each quiz once. Scores appear here for teachers โ€” they are not written to the official marks list.

QuizSubjectStudentID Score%GradeWhen
No attempts yet.

Take quiz

Teacher accounts

Admin or branch can create teachers. Branch managers only manage teachers in their branch. Teachers can access only assigned branch, grades, sections, and subjects.

If checked, choose the class and section they are responsible for as homeroom.
Homeroom assignment

This is the class they lead as homeroom (may be one of the grades/sections they also teach).

Teacher summary
No teachers yet.
NameUsernameSexBranchQualificationExperienceAssignmentPeriods (plan / TT)
No teachers yet.

Branch login accounts

Admin only โ€” create, edit, and delete branch logins here.

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.

1. Branch & display name

2. Login credentials (username + password)

Assign a username and password. Share the portal link via Telegram โ€” never post passwords on the public website.

What they type on Sign In (e.g. kg1.office or an email). Must be unique.
Share privately (e.g. Telegram). Do not publish on the website.
Login preview: username = โ€”
NameUsernameBranchRole
No branch accounts yet.

My Report Card

Only your own results are shown, linked to your student ID. Choose a quarter and print.

Select a quarter to preview your report card.

Teacher dashboard

Welcome

My students
0
Classes
0
Subjects
0
Periods / week
0
Attendance today
โ€”
My messages
0

My assignment

Branch, grades, sections and subjects on your account

โ€”
Homeroom teacher

Quick actions

Todayโ€™s timetable

โ€”

No periods scheduled for today.

Class lists (my grades)

Students in classes you teach (by branch filter)

โ€”

Profile

โ€”

Parent home

Information for your child only ยท Hasset Academy

Student
โ€”
Student ID
โ€”
Grade
โ€”
Attendance rate
โ€”
Fee balance
โ€”

Parent login shows report card only.

Tip: On your phone, open the same EMIS link, choose Parent, enter Student ID + guardian phone.

Childโ€™s report card

Official report card layout โ€” same design the school prints. Choose period, then print.

โ€”

Loading official report cardโ€ฆ

Attendance

Daily records for your child (read-only): Present, Absent, Late, Excused, Sick with the reason written by the teacher.

Loadingโ€ฆ

Fee status

Payment status for your child (read-only).

Loadingโ€ฆ

Class timetable

Weekly schedule for your childโ€™s grade and section (read-only).

Loadingโ€ฆ