SkillAgentSearch skills...

Searchify

A powerful book search API with advanced filtering, full-text search, and analytics-ready endpoints.

Install / Use

/learn @alireza-haeri/Searchify
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Searchify

A modern, high-performance Book Search API powered by .NET 9, Elasticsearch 9, and Docker.
Built to demonstrate real-world search scenarios, optimized queries, and a production-ready backend setup.

<br>

.NET Elastic Docker Status

<img width="2560" height="1416" alt="2 Searchfy" src="https://github.com/user-attachments/assets/c4ed4e8d-e7e6-4ce8-886a-5a8ed775b282" /> <br>

✨ Features

  • Full-text search across title, author, description, categories, and publisher fields.
  • Smart suggestions powered by Elastic's completion suggesters.
  • Advanced filtering & sorting for precise search results.
  • Top books & analytics endpoints for curated insights.
  • Containerized setup with docker-compose for Elasticsearch + API.
<br>

🚀 Quick Start

1. Clone the repository

git clone https://github.com/alireza-haeri/Searchify.git
cd Searchify

2. Start Elasticsearch & Kibana

You need Elasticsearch 9.x.
Pull it from Docker Hub:

docker compose up -d

3. Run the API

dotnet build
dotnet run --project src/Searchify.Api
<br>

📡 API Highlights

| Method | Endpoint | Description | |---------|----------|-------------| | GET | /api/books/search | Advanced multi-field search with filters, pagination, and sorting | | GET | /api/books/suggestion | Smart type-ahead suggestions | | GET | /api/books/topbooks | Get top-rated books, with optional category filtering | | GET | /api/books/categories | Aggregated stats on all categories | | GET | /api/books/publishers | Insights on publishers and their average ratings | | GET | /api/book/{isbn} | Get a specific book by ISBN | | POST | /api/book | Add a new book | | PUT | /api/book/{isbn} | Update book info | | DELETE | /api/book/{isbn} | Delete a book |

🔍 Search Example

GET /api/books/search
?title=elastic
&categories=Database
&page=1
&pageSize=10
&sortBy=rating
&sortOrder=desc

💡 Suggestion Example

GET /api/books/suggestion?q=learn

Response

    [
      { "title": "Learning Elasticsearch", "author": "John Doe", "rating": 4.7 },
      { "title": "Learning .NET 9", "author": "Jane Smith", "rating": 4.5 }
    ]
<br>

🛠 Built With

  • .NET 9 Minimal APIs — clean, lightweight endpoints
  • Elasticsearch 9 — advanced search, aggregations, and suggestions
  • Docker & Docker Compose — seamless local setup for API + Elastic stack
  • FluentValidation — clean input validation
<br>

📫 Let's Connect

<p align="left"> <a href="https://www.linkedin.com/in/alireza-haeri-dev" target="_blank"> <img src="https://img.shields.io/badge/LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white" alt="LinkedIn"/> </a> <a href="https://t.me/AlirezaHaeriDev" target="_blank"> <img src="https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge&logo=telegram&logoColor=white" alt="Telegram"/> </a> <a href="mailto:alireza.haeri.dev@gmail.com"> <img src="https://img.shields.io/badge/Email-D14836?style=for-the-badge&logo=gmail&logoColor=white" alt="Email"/> </a> </p>
View on GitHub
GitHub Stars14
CategoryData
Updated4mo ago
Forks0

Languages

C#

Security Score

72/100

Audited on Nov 7, 2025

No findings