Go to file
Hamid Reza Mohammadi 78798feb19 geotag fixes
2026-09-23 20:16:03 +03:30
docs/getting-started documents 2026-08-14 18:46:17 +03:30
GanjooRazor geotag fixes 2026-09-23 20:16:03 +03:30
RMuseum geotag suggestion 2026-09-23 08:11:58 +03:30
TajikGanjoor tajik recitation fix 2026-09-12 13:28:23 +03:30
.gitattributes Add project files. 2020-08-14 21:06:22 +04:30
.gitignore Add project files. 2020-08-14 21:06:22 +04:30
GanjoorService.sln refactoring 2026-07-19 16:50:22 +03:30
LICENSE Create LICENSE 2020-08-14 21:35:13 +04:30
README.md semantic search dev guide 2026-09-11 08:33:31 +03:30
RUNNING_LOCALLY.md documentations 2026-08-14 19:41:04 +03:30
SEMANTIC_SEARCH_SETUP.md semantic search dev guide 2026-09-11 08:30:48 +03:30

GanjoorService

Ganjoor museum and ganjoor.net own backend (ASP.NET Core Web API) and frontend (Razor Pages) code

این کد وب سرویس گنجینهٔ گنجور و گنجور و همچنین کد سایت گنجور است.

فهرست توابع در دسترس

https://api.ganjoor.net

Running it locally

New to this codebase and want to run your own copy? See RUNNING_LOCALLY.md for a full step-by-step guide — cloning, database setup, and Visual Studio configuration.

The one thing that guide covers in more depth but is worth knowing up front: the production database is never published, since it contains private/user-linked data. What is published is a git repository of the poetry content itself (poets, categories, poems — allowlisted, no user data): github.com/ganjoor/ganjoor-data. A fresh local install can pull real content from there via Admin → مالی و سایت → درون‌ریزی دادهٔ عمومی (also reachable automatically the first time you run the site against an empty database) instead of starting from nothing.

The "find a poem about..." feature has its own setup guide, separate from the main one above — it needs a downloaded ONNX model and published embeddings data on top of the usual database setup: SEMANTIC_SEARCH_SETUP.md. Also has a real troubleshooting section covering the actual problems hit building this feature, not a generic checklist — worth reading before assuming something new is broken.