Web2026
Aoun
A free academic platform for Jordanian university students.
- Live
- Featured
Web2026
A free academic platform for Jordanian university students.

In short
Aoun brings summaries, past exams, course material, GPA tools, bookmarks, and study planning into one place for Jordanian university students. It is free to browse without an account and works offline as an installed PWA.
The compartments
Built with
Where to find it
Jordanian students find course material in WhatsApp groups, one-off Google Drive folders, and Telegram channels that disappear. Students must collect the same material again for each intake because those sources lack indexing and versioning.
Aoun keeps one catalogue, organised by university → faculty → course, so students can find summaries and past exams again. It also includes a GPA calculator for local grading rules, bookmarks, a study planner, and a focus timer.
I built Aoun with Next.js and Convex. Students can read without an account and sign in only to save or contribute.
تتناثر المواد الدراسية عند طلاب الأردن بين مجموعات واتساب، ومجلدات درايف تُشارَك مرة ولا تُحدَّث، وقنوات تيليجرام تختفي. لا فهرسة، ولا إصدارات، وكل دفعة جديدة تعيد جمع المادة نفسها من الصفر.
«عون» هو الحل الممل والفعّال: فهرس واحد منظّم حسب الجامعة ← الكلية ← المساق، يبقى فيه الملخص أو الامتحان في مكانه وقابلًا للإيجاد. وفوق الأرشيف الأدوات التي يفتحها الطلاب أسبوعيًا فعلًا: حاسبة معدّل تعرف قواعد التقدير المحلية، ومحفوظات، ومنظّم دراسة، ومؤقّت تركيز.
المنصة تطبيق Next.js على Convex، وتجربة القراءة فيه بلا حساب عمدًا: لا تسجّل الدخول إلا حين تريد حفظ شيء.
Results
Each one opens twice: what went wrong on the left, what I did on the right.
01
Problem
Every university names things differently: faculties, credit hours, course codes, even what a 'year' means. Modelling one university and generalising later would have meant a migration for every new one added.
What I did
I modelled the hierarchy as generic nodes with per-university configuration held as data, not code. Grading scales, credit rules and naming all live in a config document. Adding a university became a content task instead of a schema change.
02
Problem
Students type 'احصاء' for 'إحصاء', drop diacritics entirely, mix Arabic and English in one query, and use colloquial course nicknames. Naive matching returned nothing for most real queries.
What I did
I normalise both the index and the query: unify hamza forms, strip diacritics and tatweel, fold Arabic-Indic digits. I also store curated aliases per course so the nicknames resolve too.
03
Problem
The place students most need the material, inside a lecture hall, is exactly where connectivity is worst. A normal SPA showed a spinner over an empty page.
What I did
The app is an installable PWA that caches viewed courses and their files, so anything you opened once opens again offline. Writes queue and replay when the connection returns.
04
Problem
Letting anyone upload is what makes the archive grow, and also what fills it with duplicates, mislabelled files and the occasional thing that should not be there.
What I did
Uploads land in a review queue rather than the catalogue. An admin view shows the file next to its metadata with approve/relabel/reject in one keystroke, and PostHog funnels tell me where contributors drop off.
Next project
Kashaf Abi Ja'farSearch thousands of hours of lessons and land on the exact second.Open it →افتحه ←Shelf
All projectsAll 40, in six compartments.