muhiddin@grimoire:~$ cat ./apps/okuliz/README.md

Okuliz_

Education · Web

Free materials for teachers.

An education platform I built end to end, from interface to server. It offers preschool and primary school teachers boards, calendars, cards and reading activities as PDF or Canva templates. Its SEO-focused structure helps it rank well in search, and a full admin panel provides detailed statistics and easy content management.

platform
Web (Next.js)
developer
Muhiddin İlhan
backend
Express + MongoDB
okuliz.com
Okuliz home screen

## how it works

  1. 01

    Find a material

    Teachers browse by grade and topic, or use the Turkish-aware search.

  2. 02

    Preview it

    The product page shows images, size options and usage notes.

  3. 03

    Download for free

    Materials download as PNG or PDF, ready to print.

  4. 04

    Save & come back

    Signed-in users can favourite and like materials.

## features

Free classroom materials

Boards, cards, colouring pages and activities for preschool and primary school.

Smart Turkish search

Diacritic normalisation, stemming, typo tolerance, synonyms and autocomplete.

SEO-first

Server-rendered pages, a dynamic sitemap, JSON-LD schemas and canonical URL redirects.

Admin dashboard

Product and category management with download, search, error and visitor reports.

Publishing from AI chat

An MCP server lets an AI assistant turn a Canva link into a draft product and publish it.

In-app browser escape

Instagram and TikTok webviews that block downloads are detected and the page reopens in the system browser.

## technical details

tech stack

Next.jsResponsive UISEOAdmin PanelExpress.jsAPIMongoDBAIWebVercelGitHubCI/CD

challenge

Keeping pages fast while new products go live immediately.

solution

Tagged ISR caching; when a product is published the server calls a secured internal route that revalidates only the affected tags.

challenge

Letting a non-technical teacher publish content.

solution

An MCP server behind OAuth 2.1 with PKCE. The assistant previews the Canva design and writes copy to fixed rules; the server exports PNG and A4 PDF, builds WebP variants and a cover with sharp, and asks for confirmation before publishing.

challenge

Database regex search is poor for Turkish.

solution

The catalogue is held in a short-lived in-memory index, ranked by field weights, synonyms, typo tolerance and popularity.