Skip to content
@Baytology-Team

Baytology-Team

Baytology

🏠 Baytology

AI-Powered Real Estate Platform for Egypt

Discover, Search, and Book Properties — Powered by Artificial Intelligence

.NET 10 Angular 21 Python FastAPI FAISS SQL Server RabbitMQ Docker License


About · Architecture · Repositories · Tech Stack · Features · Getting Started · Team


📖 About

Baytology is a full-stack, AI-powered real estate marketplace designed for the Egyptian market. The platform connects property Buyers with Agents through an intelligent search and recommendation system, enabling seamless property discovery, booking, real-time communication, and secure online payments.

What sets Baytology apart is its deep AI integration — users can search for properties using natural language text, voice commands in Arabic, or even uploading an image of a property they like. The platform also features an Arabic NLP Chatbot and a FAISS vector-based recommendation engine that learns from user preferences.


🏛 System Architecture

Baytology follows a microservices-oriented architecture with four independently deployable services orchestrated via Docker Compose:

┌─────────────────────────────────────────────────────────────────────────────────────────┐
│                                      CLIENTS                                            │
│                          Web Browser (Angular 21 SPA)                                   │
└────────────────┬──────────────────────────┬──────────────────────────┬───────────────────┘
                 │ HTTPS                    │ WSS (SignalR)            │ HTTPS
                 ▼                          ▼                          ▼
┌─────────────────────────────────────────────────────────────────────────────────────────┐
│                              BACKEND API (.NET 10)                                      │
│                                                                                         │
│   ┌──────────┐  ┌──────────────┐  ┌──────────┐  ┌──────────┐  ┌─────────────────────┐  │
│   │ Identity │  │  Properties  │  │ Bookings │  │ Payments │  │    AI Orchestrator   │  │
│   │  (JWT)   │  │   (CRUD)     │  │          │  │ (Paymob) │  │ (Outbox + Fallback)  │  │
│   └──────────┘  └──────────────┘  └──────────┘  └──────────┘  └─────────┬───────────┘  │
│                                                                          │              │
│   ┌──────────┐  ┌──────────────┐  ┌──────────────────────────────────┐   │              │
│   │ SignalR  │  │    Admin     │  │    Background Services           │   │              │
│   │  Hubs    │  │  Dashboard   │  │  (Outbox Processor + Recovery)   │   │              │
│   └──────────┘  └──────────────┘  └──────────────────────────────────┘   │              │
└──────────────────────────────┬───────────────────────────────────────────┘──────────────┘
                               │                               │
                    ┌──────────▼──────────┐         ┌──────────▼──────────┐
                    │    SQL Server 2022  │         │    RabbitMQ 3.13    │
                    │    (Primary DB)     │         │   (Message Broker)  │
                    └─────────────────────┘         └──────────┬──────────┘
                                                               │
                    ┌──────────────────────────────────────────┐│
                    │              AI SERVICES (Python)         ││
                    │                                          ││
                    │  ┌────────────────┐  ┌────────────────┐  ││
                    │  │ 🤖 Chatbot    │  │ 🔍 Image       │◄─┘│
                    │  │ Arabic NLP    │  │    Search      │   │
                    │  │ + Voice (ASR) │  │                │   │
                    │  │ Port 8000     │  │ Port 8001      │   │
                    │  └────────────────┘  └────────────────┘  │
                    │                                          │
                    │  ┌────────────────────────────────────┐  │
                    │  │ 📊 Recommendation Engine           │  │
                    │  │ FAISS Vector Similarity            │  │
                    │  │ Port 8002                          │  │
                    │  └────────────────────────────────────┘  │
                    └──────────────────────────────────────────┘

📦 Repositories

Repository Description Stack
baytology-backend Core API server — Clean Architecture, CQRS, DDD with 15 versioned controllers and 78 tests .NET 10, EF Core, SignalR, MediatR
baytology-frontend Single Page Application — 16 feature modules with full i18n (Arabic/English) Angular 21, TailwindCSS 4, RxJS
baytology-chatbot Arabic NLP chatbot with voice recognition (Whisper) and image-based property search Python, FastAPI, LM Studio, Whisper
baytology-recommendation FAISS vector-based property recommendation engine with real-time scoring Python, FastAPI, FAISS, scikit-learn

🛠 Tech Stack

Backend

.NET C# SQL Server RabbitMQ SignalR

  • ASP.NET Core Web API — Versioned REST endpoints
  • Entity Framework Core 10 — Code-first with 18 fluent configs
  • MediatR — CQRS with 6 pipeline behaviors
  • ASP.NET Identity + JWT — Auth with refresh token rotation
  • Google OAuth 2.0 — Social login
  • Paymob Gateway — Payment processing + webhook verification
  • HybridCache — L1 In-Memory + L2 Distributed
  • Serilog — Structured logging with Seq sink
  • FluentValidation — Request validation

Frontend

Angular TypeScript TailwindCSS

  • Angular 21 — Standalone components, lazy-loaded routes
  • TailwindCSS 4 — Utility-first styling
  • ngx-translate — Full Arabic/English i18n
  • SignalR Client — Real-time notifications & chat
  • Leaflet — Interactive property maps
  • ngx-bootstrap — UI components
  • ngx-image-cropper — Avatar upload
  • intl-tel-input — Phone number input
  • Vitest — Unit testing

AI / ML

Python FastAPI FAISS

  • FastAPI + Uvicorn — Async AI microservices
  • LM Studio (Gemma 2 9B) — Local LLM for Arabic NLP
  • Faster-Whisper — Arabic speech-to-text (ASR)
  • FAISS — Vector similarity search & recommendations
  • scikit-learn — Feature preprocessing & ML pipelines
  • RabbitMQ (Pika) — Async task dispatch
  • HTTPX — Internal service communication
  • Pandas / NumPy — Data processing

✨ Features

🏘 Property Marketplace

  • Full Property CRUD — Create, edit, and manage listings with images, amenities, and location
  • Advanced Filtering — Search by type, price range, location, bedrooms, and more
  • Save & Favorites — Bookmark properties for later
  • Agent Profiles — Verified agents with reviews and ratings
  • Interactive Maps — Leaflet-powered location visualization

🤖 AI-Powered Intelligence

  • Natural Language Search — Describe what you want in plain Arabic or English
  • Voice Search — Speak your query with Whisper-powered Arabic ASR
  • Image Search — Upload a property photo to find similar listings
  • Smart Recommendations — FAISS vector-based personalized suggestions
  • Arabic Chatbot — Conversational AI assistant for property questions
  • Hybrid AI Pipeline — RabbitMQ Outbox pattern with automatic in-process fallback

📅 Booking & Payments

  • Viewing Scheduling — Book property viewings with date validation
  • Agent Confirmation — Agents confirm or decline booking requests
  • Paymob Integration — Secure online payments with webhook verification
  • Escrow Flow — Payment held until service delivered
  • Refund System — Request and admin-approved refund workflow

💬 Real-Time Communication

  • SignalR Chat — Instant buyer ↔ agent messaging
  • Push Notifications — Real-time alerts for bookings, messages, and updates
  • Conversation Groups — Organized messaging with participant authorization
  • Read Tracking — Message read receipts

🛡 Admin Dashboard

  • Platform Analytics — Key metrics and performance insights
  • User Management — Manage buyers, agents, and admins
  • Payment & Refund Oversight — Review and approve financial transactions
  • AI Monitoring — Track and resolve AI search/recommendation requests
  • Audit Logs & Domain Events — Full system traceability

🌍 Internationalization

  • Bilingual UI — Full Arabic and English support
  • RTL Layout — Native right-to-left rendering for Arabic
  • Localized Content — Translated labels, errors, and notifications

🏗 Engineering Highlights

Pattern Implementation
Clean Architecture 5-project .NET solution with strict dependency inversion
Domain-Driven Design Rich entities, value objects, domain events
CQRS Command/Query separation via MediatR
Result Pattern Result<T> for explicit error handling — no exceptions for flow control
Outbox Pattern DomainEventLog table + background processor for reliable messaging
Pipeline Behaviors Validation, Caching, Cache Invalidation, Logging, Performance, Exception Handling
Saga (Choreography) Domain Events → Event Handlers → Commands
Strategy Pattern IAiDispatchPolicy, IAiSearchFallbackService
Interceptors Auditable entities, domain events, audit logging
Background Services OutboxProcessor, AiFallbackRecoveryProcessor

🚀 Getting Started

Prerequisites

Tool Version Purpose
Docker Latest Container orchestration
.NET SDK 10.0+ Backend API
Node.js 22+ Frontend build
Python 3.12+ AI services
SQL Server 2019+ Database

Quick Start (Docker — Recommended)

The fastest way to run the full stack is with Docker Compose:

# 1. Clone the repositories
git clone https://github.com/Baytology-Team/baytology-backend.git
cd baytology-backend

# 2. Configure environment variables
cp .env.example .env
# Edit .env with your secrets (SQL password, JWT secret, etc.)

# 3. Start all services
docker compose -f docker-compose.https.yml up -d

This starts 6 containers:

Container Port Description
baytology-frontend 4200 Angular SPA
baytology-api 7053 .NET Web API
baytology-chatbot 8000 Arabic NLP Chatbot + Voice
baytology-image-search 8001 Image-based Search
baytology-recommendation 8002 FAISS Recommendation Engine
baytology-rabbitmq 15672 RabbitMQ Management UI
baytology-sqlserver 14333 SQL Server Database

Manual Setup

For development without Docker, refer to each repository's individual README:

  1. Backenddotnet restore && dotnet run --project src/Baytology.Api
  2. Frontendnpm ci && npm start (runs on localhost:4200)
  3. Chatbotpip install -r requirements.txt && uvicorn api:app --port 8000
  4. Recommendationpip install -r requirements.txt && uvicorn app:app --port 8002

🧪 Testing

# Backend — 78 tests across 3 layers
dotnet test

# Frontend
cd frontend && npm test
Layer Tests Coverage
Baytology.Domain.Tests 24 Entity creation, validation, state transitions, domain events
Baytology.Application.Tests 38 Command/query handlers, behaviors, persistence
Baytology.Api.Tests 16 Full HTTP endpoint flows via WebApplicationFactory

🔐 Security

Measure Details
JWT + Refresh Tokens Access tokens with configurable expiry + rotation
Role-Based Access Control Three roles: Buyer, Agent, Admin
Google OAuth 2.0 External social login
Rate Limiting Sliding window (100 req/min)
Webhook Verification Constant-time HMAC comparison
Environment-Aware Errors Production never leaks internals
User Secrets All sensitive keys via dotnet user-secrets

📄 License

All repositories in this organization are licensed under the MIT License.


Built with ❤️ by the Baytology Team

.NET 10 · Angular 21 · Python · FAISS · RabbitMQ · SignalR

AI-Powered Real Estate — Making property search intelligent

Popular repositories Loading

  1. baytology-backend baytology-backend Public

    A production-ready .NET 10 Web API for an intelligent real estate marketplace. Engineered using Clean Architecture, CQRS, and Domain-Driven Design. Features real-time chat via SignalR, asynchronous…

    C# 1 1

  2. baytology-frontend baytology-frontend Public

    TypeScript

  3. baytology-ai-search baytology-ai-search Public

    Python 1

  4. baytology-feat-recommendation-system baytology-feat-recommendation-system Public

    Jupyter Notebook

  5. baytology-deployment baytology-deployment Public

  6. .github .github Public

    Organization profile and community health files

Repositories

Showing 6 of 6 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…