# abosoghir/wasla architecture

> Architecture diagram of the GitHub repository abosoghir/wasla, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abosoghir/wasla
- Repository: https://github.com/abosoghir/wasla

## Overview

Wasla is a web API for a two-sided helper/seeker services marketplace. Its main workflow is creating and applying to projects or tasks, then coordinating sessions and completing paid work; profiles, reviews, reputation, and notifications support that lifecycle. The tree also identifies authentication, wallet/payment, AI, and browsing capabilities. Sampled handlers show repository-based persistence and specific review/session/AI interactions; unsampled feature wiring is represented only at the subsystem level, and no README detail beyond the product name was available.

Main entry points: [`Wasla/Program.cs`](https://github.com/abosoghir/wasla/blob/master/Wasla/Program.cs) (HTTP API), [`Wasla/Features/Reviews`](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Reviews) (Reviews and reports), [`Wasla/Features/Communication`](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Communication) (Sessions and messaging), [`Wasla/Features/AIIntegration/UseAIFeature/UseAIFeatureHandler.cs`](https://github.com/abosoghir/wasla/blob/master/Wasla/Features/AIIntegration/UseAIFeature/UseAIFeatureHandler.cs) (AI feature requests)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_market["Marketplace and profiles"]
  node_profiles["Profiles and services"]
  node_browse["Helper browse"]
  node_projects["Project marketplace"]
  node_tasks["Task marketplace"]
  node_milestones["Milestone delivery"]
end

subgraph group_trust["Identity and trust"]
  node_auth["Authentication"]
  node_reviews["Reviews and reports"]
end

subgraph group_engage["Communication and reputation"]
  node_sessions["Sessions and messaging"]
  node_notifications["Notifications"]
  node_gamification["Points and badges"]
end

subgraph group_money["Finance and AI"]
  node_financial["Wallet and payments"]
  node_aihandler["AI feature requests"]
  node_ai["AI service client<br/>[AIService.cs]"]
end

subgraph group_platform["Runtime and persistence"]
  node_webapi["HTTP API<br/>[Program.cs]"]
  node_repository["Repository layer<br/>[Repository.cs]"]
  node_context["EF data context"]
  node_database[("Application data")]
  node_file["File storage service<br/>[FileService.cs]"]
  node_email["Email sender<br/>[EmailService.cs]"]
end

node_seeker(("Seeker / helper"))
node_ai_external{{"AI provider"}}

node_seeker -->|"sends requests"| node_webapi
node_webapi -->|"routes authentication"| node_auth
node_webapi -->|"routes profile requests"| node_profiles
node_webapi -->|"routes browse requests"| node_browse
node_webapi -->|"routes project requests"| node_projects
node_webapi -->|"routes task requests"| node_tasks
node_webapi -->|"routes delivery requests"| node_milestones
node_webapi -->|"routes communication"| node_sessions
node_webapi -->|"routes trust requests"| node_reviews
node_webapi -->|"routes notification requests"| node_notifications
node_webapi -->|"routes finance requests"| node_financial
node_webapi -->|"routes AI requests"| node_aihandler
node_aihandler -->|"calls feature"| node_ai
node_ai -->|"posts request"| node_ai_external
node_aihandler -->|"deducts or refunds points"| node_gamification
node_reviews -->|"awards review points"| node_gamification
node_sessions -->|"awards completion points"| node_gamification
node_sessions -->|"creates notifications"| node_notifications
node_reviews -->|"creates review notice"| node_notifications
node_aihandler -->|"reads and writes usage"| node_repository
node_reviews -->|"reads and writes reviews"| node_repository
node_sessions -->|"reads and writes sessions"| node_repository
node_repository -->|"queries and saves"| node_context
node_context -->|"persists entities"| node_database

click node_webapi "https://github.com/abosoghir/wasla/blob/master/Wasla/Program.cs"
click node_auth "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/AuthenticationManagement"
click node_profiles "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/HelperProfileManagement"
click node_browse "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/HelperBrowse"
click node_projects "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Marketplace/Projects"
click node_tasks "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Marketplace/Tasks"
click node_milestones "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Marketplace/ProjectMilestones"
click node_sessions "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Communication"
click node_reviews "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Reviews"
click node_notifications "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Notifications"
click node_financial "https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Financial"
click node_aihandler "https://github.com/abosoghir/wasla/blob/master/Wasla/Features/AIIntegration/UseAIFeature/UseAIFeatureHandler.cs"
click node_ai "https://github.com/abosoghir/wasla/blob/master/Wasla/Common/AIIntegration/AIService.cs"
click node_gamification "https://github.com/abosoghir/wasla/blob/master/Wasla/Common/Gamification/GamificationHelper.cs"
click node_repository "https://github.com/abosoghir/wasla/blob/master/Wasla/Common/RepositoryPattern/Repository.cs"
click node_context "https://github.com/abosoghir/wasla/blob/master/Wasla/Persistence/ApplicationDbContext.cs"
click node_file "https://github.com/abosoghir/wasla/blob/master/Wasla/Common/FileServices/FileService.cs"
click node_email "https://github.com/abosoghir/wasla/blob/master/Wasla/Common/Email/EmailService.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_profiles,node_browse,node_projects,node_tasks,node_milestones toneBlue
class node_auth,node_reviews toneAmber
class node_sessions,node_notifications,node_gamification toneMint
class node_financial,node_aihandler,node_ai toneRose
class node_webapi,node_repository,node_context,node_database,node_file,node_email,node_seeker,node_ai_external toneIndigo
```

## Components

### Marketplace and profiles

- [Profiles and services](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/HelperProfileManagement): `Wasla/Features/HelperProfileManagement`
- [Helper browse](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/HelperBrowse): `Wasla/Features/HelperBrowse`
- [Project marketplace](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Marketplace/Projects): `Wasla/Features/Marketplace/Projects`
- [Task marketplace](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Marketplace/Tasks): `Wasla/Features/Marketplace/Tasks`
- [Milestone delivery](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Marketplace/ProjectMilestones): `Wasla/Features/Marketplace/ProjectMilestones`

### Identity and trust

- [Authentication](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/AuthenticationManagement): `Wasla/Features/AuthenticationManagement`
- [Reviews and reports](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Reviews): `Wasla/Features/Reviews`

### Communication and reputation

- [Sessions and messaging](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Communication): `Wasla/Features/Communication`
- [Notifications](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Notifications): `Wasla/Features/Notifications`
- [Points and badges](https://github.com/abosoghir/wasla/blob/master/Wasla/Common/Gamification/GamificationHelper.cs): `Wasla/Common/Gamification/GamificationHelper.cs`

### Finance and AI

- [Wallet and payments](https://github.com/abosoghir/wasla/tree/master/Wasla/Features/Financial): `Wasla/Features/Financial`
- [AI feature requests](https://github.com/abosoghir/wasla/blob/master/Wasla/Features/AIIntegration/UseAIFeature/UseAIFeatureHandler.cs): `Wasla/Features/AIIntegration/UseAIFeature/UseAIFeatureHandler.cs`
- [AI service client](https://github.com/abosoghir/wasla/blob/master/Wasla/Common/AIIntegration/AIService.cs): `Wasla/Common/AIIntegration/AIService.cs`

### Runtime and persistence

- [HTTP API](https://github.com/abosoghir/wasla/blob/master/Wasla/Program.cs): `Wasla/Program.cs`
- [Repository layer](https://github.com/abosoghir/wasla/blob/master/Wasla/Common/RepositoryPattern/Repository.cs): `Wasla/Common/RepositoryPattern/Repository.cs`
- [EF data context](https://github.com/abosoghir/wasla/blob/master/Wasla/Persistence/ApplicationDbContext.cs): `Wasla/Persistence/ApplicationDbContext.cs`
- **Application data**
- [File storage service](https://github.com/abosoghir/wasla/blob/master/Wasla/Common/FileServices/FileService.cs): `Wasla/Common/FileServices/FileService.cs`
- [Email sender](https://github.com/abosoghir/wasla/blob/master/Wasla/Common/Email/EmailService.cs): `Wasla/Common/Email/EmailService.cs`

### Other components

- **Seeker / helper**
- **AI provider**

## Connections

- Seeker / helper → HTTP API: sends requests
- HTTP API → Authentication: routes authentication
- HTTP API → Profiles and services: routes profile requests
- HTTP API → Helper browse: routes browse requests
- HTTP API → Project marketplace: routes project requests
- HTTP API → Task marketplace: routes task requests
- HTTP API → Milestone delivery: routes delivery requests
- HTTP API → Sessions and messaging: routes communication
- HTTP API → Reviews and reports: routes trust requests
- HTTP API → Notifications: routes notification requests
- HTTP API → Wallet and payments: routes finance requests
- HTTP API → AI feature requests: routes AI requests
- AI feature requests → AI service client: calls feature
- AI service client → AI provider: posts request
- AI feature requests → Points and badges: deducts or refunds points
- Reviews and reports → Points and badges: awards review points
- Sessions and messaging → Points and badges: awards completion points
- Sessions and messaging → Notifications: creates notifications
- Reviews and reports → Notifications: creates review notice
- AI feature requests → Repository layer: reads and writes usage
- Reviews and reports → Repository layer: reads and writes reviews
- Sessions and messaging → Repository layer: reads and writes sessions
- Repository layer → EF data context: queries and saves
- EF data context → Application data: persists entities
