Atheerium Logo Mark

Work

Case studies

Real projects, documented honestly. Every outcome describes what the system demonstrably does — no fabricated metrics or testimonials.

Software

2025

Shipped

School ERP for a private educational institution

Context

A private educational institution needed to run its operations beyond spreadsheets: students, subscriptions, teachers, attendance, purchases, and finances were managed manually across disconnected files.

Problem

No single system tracked a student from registration to yearly renewal. Subscription status was unclear, attendance was manual, teacher session compensation was hard to reconcile, and every new school year meant re-entering student data by hand.

Constraints

The school operates offline in parts of the building, so a cloud-only system was not acceptable. Staff work in three languages, so the interface had to be fully localized — not partially translated.

Solution

A desktop ERP built with Electron, React, and TypeScript that runs locally with no cloud dependency. Sixteen domain modules cover students, subscriptions, branches, modules, groups, teacher sessions, purchases, QR check-in attendance, activity logging, and pricing. Creating a student automatically creates their yearly subscription, assigns fundamental modules, and sets up default groups.

Technology

ElectronReactTypeScriptViteTailwind CSSshadcn/uiZodTanStack Queryi18next (EN/AR/FR)Express + Puppeteer (ID cards)

Key decisions

  • Local-first storage with a documented SQLite schema — data persists on-device and can run in plain browser mode for fast development.
  • QR check-in gates on yearly fee validity before allowing attendance, so expired subscriptions surface immediately at the door.
  • Full RTL support for Arabic with document direction switched by locale.

Outcome

  • Twenty screens covering the full operational cycle from registration to payroll reporting.
  • A student can be registered, subscribed, assigned to groups, checked in by QR, and issued a printed ID card within one system.
  • Complete audit trail of create, update, delete, and login actions.
  • Trilingual interface: English, Arabic (full RTL), and French.
  • Three run modes: browser, desktop, and full-stack with ID card generation.

Lessons

  • Local-first was the right call for an offline environment — a cloud-only product would have been rejected on day one.
  • Auto-creating the yearly subscription at student creation removed a whole class of missed-renewal errors.

Web

2025

Shipped

Delivery pricing system for Algerian e-commerce

Context

An e-commerce operation selling from Laghouat needed accurate delivery pricing to all 58 Algerian wilayas — by home delivery and stop-desk — plus a way to track products, orders, and customers without spreadsheets.

Problem

Delivery costs were guessed per order. Margins were eaten by underpriced delivery fees, and there was no record of which courier was cheapest for which route or whether an order was profitable.

Solution

A Next.js application with a delivery calculator that computes the cheapest courier price for a route and weight, plus the minimum sell price that preserves margin. Hardcoded reference prices for all 58 wilayas (31 sourced from live reference data, 27 estimated by proximity) with optional live rate lookup via Yalidine and Noest APIs. Product, order, and customer management on top.

Technology

Next.jsReactTypeScriptTailwind CSSSupabaseYalidine APINoest API

Key decisions

  • Reference price table shipped as code so the calculator works instantly without network dependency, with live API rates as the upgrade path.
  • Minimum sell price computed from wholesale cost + margin + delivery fee — pricing becomes a rule, not a guess.

Outcome

  • Instant delivery quotes for all 58 wilayas in two delivery modes.
  • Orders auto-priced at creation from route and weight.
  • Product and customer records centralized in one system.

Lessons

  • A hardcoded, honest price table beats a flaky live API for day-to-day operations; live rates belong only where freshness pays for itself.

Data

2025

Shipped

Domain appraisal toolkit with 19,000 sales records

Context

Domain investing decisions were being made on gut feel. Without sale comparables, it was impossible to know whether a domain was worth acquiring, holding, or pricing to sell.

Problem

No reliable, queryable record of what comparable domains actually sold for. Appraising a portfolio of hundreds of domains by hand against NameBio was impractical.

Solution

A Python toolkit combining a local SQLite database of 19,000 domain sales with three appraisal signals: buyer pool estimation, comparable sales confidence, and liquidity. Ships as both a CLI and an MCP server, so the same database serves manual research and AI agent workflows. Includes trademark checking, GoDaddy expiry lists, and a lead-generation pipeline.

Technology

PythonMCPSQLiteClickRichrequestsSigna API

Key decisions

  • Store sales data locally and commit it to the repo — appraisal queries become instant, offline, and reproducible.
  • Expose the same appraisal logic through CLI and MCP so agents and humans reason over identical data.

Outcome

  • Nineteen thousand sales records queryable by exact domain, partial match, comparable length, and price tier.
  • Three-criteria appraisal output with a single verdict per domain.
  • Batch appraisal of domain lists to CSV.
  • Trademark risk checked before acquisition, not after.

Lessons

  • A curated local dataset beat a live API for this use case: faster, free, and stable. Freshness matters less than coverage for appraisal.

Automation

2025

Experiment

Google Maps lead extraction at scale

Context

Lead generation for local businesses required structured data — name, phone, address, ratings, coordinates — from Google Maps, in volumes the interface does not expose.

Problem

Google Maps displays roughly 120 results per search and paginates lazily. Manual extraction is slow, and naive scrapers break against the interface's behavior.

Solution

An Apify actor using Playwright with stealth patching. It scrolls the results panel to load past the display limit, extracts fields from listing cards and expanded side panels, and pushes structured results to the Apify dataset for delivery as JSON, CSV, or XLSX. Input is a list of queries with a result cap.

Technology

PythonPlaywrightplaywright-stealthApifyBeautifulSoup

Key decisions

  • Smart scrolling instead of URL manipulation — the extraction survives interface changes better.
  • Stealth patching to avoid detection while staying within the platform's terms as far as they permit.

Outcome

  • Structured lead records: name, address, phone, website, rating, review count, category, hours, GPS coordinates, and place ID.
  • Result caps per query with retry handling for captcha and unusual-traffic responses.

Lessons

  • Labeled as an experiment deliberately — scraping lives in a gray zone, and the value is the structured pipeline, not the volume.

More case studies coming soon. The domain toolkit, wholesale supplier finder, and API traffic capture extension are documented as projects. Full case studies are in progress.