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.

## how it works
- 01
Find a material
Teachers browse by grade and topic, or use the Turkish-aware search.
- 02
Preview it
The product page shows images, size options and usage notes.
- 03
Download for free
Materials download as PNG or PDF, ready to print.
- 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
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.