تغییر نام اپلیکیشن به Smart Organization

نام نمایشی و هویت اپلیکیشن در همهٔ سطوح کاربر-پسند از «AGY Web» به
«Smart Organization» تغییر کرد:

- UI: عنوان تب مرورگر، صفحهٔ ورود، برند و لوگوی پوستهٔ اپ (AG → SO)
- بک‌اند: مقدار پیش‌فرض app_name، نام و توضیح توزیع پایتون
- مانیفست‌ها: package.json ریشه و چهار پکیج، pyproject.toml
- مستندات: README، PLAN، TODO و دو سند docs

شناسه‌های داخلی عمداً دست‌نخورده مانده‌اند: scope پکیج‌های @agy/*،
کلیدهای localStorage، نام‌های logger، نام فایل پایگاهٔ داده، و اطلاعات
اتصال پایگاه داده در .env.example و infra/docker/docker-compose.yml.
This commit is contained in:
mjalmoudy94
2026-10-13 01:26:44 +03:30
parent 717e53a7ce
commit 0b28a9f365
17 changed files with 21 additions and 21 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# AGY Web — sample environment file. # Smart Organization — sample environment file.
# Copy to `.env` and fill in real values. NEVER commit a real `.env`. # Copy to `.env` and fill in real values. NEVER commit a real `.env`.
# Every external provider defaults to `mock` so the stack runs with zero # Every external provider defaults to `mock` so the stack runs with zero
# credentials. Flip the *_PROVIDER vars once real credentials exist. # credentials. Flip the *_PROVIDER vars once real credentials exist.
+2 -2
View File
@@ -1,4 +1,4 @@
# پلن نسخه وب مستقل AGY Bot # پلن نسخه وب مستقل Smart Organization
تاریخ تدوین: 2026-10-12 تاریخ تدوین: 2026-10-12
محل توسعه: `/Users/mamad/Projects/agy-bot/web` محل توسعه: `/Users/mamad/Projects/agy-bot/web`
@@ -1066,7 +1066,7 @@ web/
1. محصول جدید مستقل از Telegram Bot فعلی باشد. 1. محصول جدید مستقل از Telegram Bot فعلی باشد.
2. هیچ فایل اصلی نسخه فعلی در runtime نسخه جدید import نشود. 2. هیچ فایل اصلی نسخه فعلی در runtime نسخه جدید import نشود.
3. نام مفهومی محصول: AI Workforce Platform یا AGY Web. 3. نام مفهومی محصول: AI Workforce Platform یا Smart Organization.
4. زبان محصولی: کارمند، مدیر، سازمان، پروژه، وظیفه، خروجی؛ نه model، prompt، token برای کاربر عادی. 4. زبان محصولی: کارمند، مدیر، سازمان، پروژه، وظیفه، خروجی؛ نه model، prompt، token برای کاربر عادی.
5. stack پیشنهادی: Next.js/TypeScript + FastAPI/Python + PostgreSQL + Redis. 5. stack پیشنهادی: Next.js/TypeScript + FastAPI/Python + PostgreSQL + Redis.
6. معماری: Modular Monolith با Clean Architecture و Ports/Adapters. 6. معماری: Modular Monolith با Clean Architecture و Ports/Adapters.
+1 -1
View File
@@ -1,4 +1,4 @@
# AGY Web — پلتفرم نیروی کار هوش مصنوعی # Smart Organization — پلتفرم نیروی کار هوش مصنوعی
نسخهٔ وب مستقل و چندسازمانی محصول. این پروژه **کاملاً جدا از ربات تلگرام** است و نسخهٔ وب مستقل و چندسازمانی محصول. این پروژه **کاملاً جدا از ربات تلگرام** است و
هیچ فایلی از ریشهٔ مخزن را در runtime خود import نمی‌کند. هیچ فایلی از ریشهٔ مخزن را در runtime خود import نمی‌کند.
+1 -1
View File
@@ -1,4 +1,4 @@
# TODO اجرای کامل نسخه وب مستقل AGY # TODO اجرای کامل نسخه وب مستقل Smart Organization
> **وضعیت (به‌روزرسانی نهایی):** پیاده‌سازی کامل شده است. > **وضعیت (به‌روزرسانی نهایی):** پیاده‌سازی کامل شده است.
> >
+1 -1
View File
@@ -1,4 +1,4 @@
"""AGY Web backend — standalone multi-tenant SaaS. """Smart Organization backend — standalone multi-tenant SaaS.
Independent of the Telegram bot runtime: nothing outside this package is imported. Independent of the Telegram bot runtime: nothing outside this package is imported.
""" """
+1 -1
View File
@@ -38,7 +38,7 @@ class Settings(BaseSettings):
# --- app ----------------------------------------------------------------- # --- app -----------------------------------------------------------------
app_env: str = "development" app_env: str = "development"
app_name: str = "AGY Web" app_name: str = "Smart Organization"
app_url: str = "http://localhost:3000" app_url: str = "http://localhost:3000"
api_url: str = "http://localhost:8000" api_url: str = "http://localhost:8000"
#: Both loopback spellings, on purpose. ``localhost`` and ``127.0.0.1`` are #: Both loopback spellings, on purpose. ``localhost`` and ``127.0.0.1`` are
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "@agy/api", "name": "@agy/api",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"description": "AGY Web backend — FastAPI + SQLAlchemy, Clean/Hexagonal architecture.", "description": "Smart Organization backend — FastAPI + SQLAlchemy, Clean/Hexagonal architecture.",
"scripts": { "scripts": {
"venv": "python3 -m venv .venv && .venv/bin/python -m pip install --upgrade pip && .venv/bin/python -m pip install -e '.[dev]'", "venv": "python3 -m venv .venv && .venv/bin/python -m pip install --upgrade pip && .venv/bin/python -m pip install -e '.[dev]'",
"dev": ".venv/bin/python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000", "dev": ".venv/bin/python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000",
+2 -2
View File
@@ -1,7 +1,7 @@
[project] [project]
name = "agy-web-api" name = "smart-org-api"
version = "0.1.0" version = "0.1.0"
description = "AGY Web backend — FastAPI + SQLAlchemy, Clean/Hexagonal architecture." description = "Smart Organization backend — FastAPI + SQLAlchemy, Clean/Hexagonal architecture."
requires-python = ">=3.12" requires-python = ">=3.12"
dependencies = [ dependencies = [
"fastapi>=0.115.0", "fastapi>=0.115.0",
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "@agy/web", "name": "@agy/web",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"description": "AGY Web frontend — Next.js App Router, RTL, dark-first.", "description": "Smart Organization frontend — Next.js App Router, RTL, dark-first.",
"scripts": { "scripts": {
"dev": "next dev -p 3000", "dev": "next dev -p 3000",
"build": "next build", "build": "next build",
+1 -1
View File
@@ -3,7 +3,7 @@ import "./globals.css";
import { SessionProvider } from "@/lib/session"; import { SessionProvider } from "@/lib/session";
export const metadata: Metadata = { export const metadata: Metadata = {
title: "AGY Web — پلتفرم نیروی کار هوش مصنوعی", title: "Smart Organization — پلتفرم نیروی کار هوش مصنوعی",
description: "سازمان بسازید، کارمند هوش مصنوعی استخدام کنید و کارها را بسپارید.", description: "سازمان بسازید، کارمند هوش مصنوعی استخدام کنید و کارها را بسپارید.",
}; };
+1 -1
View File
@@ -36,7 +36,7 @@ export default function LoginPage() {
return ( return (
<div className="flex min-h-screen items-center justify-center p-5"> <div className="flex min-h-screen items-center justify-center p-5">
<Card className="w-full max-w-sm"> <Card className="w-full max-w-sm">
<CardTitle>ورود به AGY Web</CardTitle> <CardTitle>ورود به Smart Organization</CardTitle>
<CardHint>با ایمیل و رمز عبور خود وارد شوید.</CardHint> <CardHint>با ایمیل و رمز عبور خود وارد شوید.</CardHint>
<form onSubmit={onSubmit} className="mt-5 flex flex-col gap-4"> <form onSubmit={onSubmit} className="mt-5 flex flex-col gap-4">
+2 -2
View File
@@ -141,9 +141,9 @@ export function AppShell({ children }: { children: React.ReactNode }) {
<aside className="hidden w-64 shrink-0 flex-col border-l border-surface-border bg-surface-raised lg:flex"> <aside className="hidden w-64 shrink-0 flex-col border-l border-surface-border bg-surface-raised lg:flex">
<div className="flex h-16 items-center gap-2 border-b border-surface-border px-5"> <div className="flex h-16 items-center gap-2 border-b border-surface-border px-5">
<span className="flex h-7 w-7 items-center justify-center rounded-lg bg-accent text-xs font-medium text-white"> <span className="flex h-7 w-7 items-center justify-center rounded-lg bg-accent text-xs font-medium text-white">
AG SO
</span> </span>
<span className="text-sm font-medium text-slate-100">AGY Web</span> <span className="text-sm font-medium text-slate-100">Smart Organization</span>
</div> </div>
<nav className="flex flex-1 flex-col gap-1 p-3"> <nav className="flex flex-1 flex-col gap-1 p-3">
+1 -1
View File
@@ -1,4 +1,4 @@
# نمای کلی معماری — نسخه وب مستقل AGY # نمای کلی معماری — نسخه وب مستقل Smart Organization
> این سند تصویر فنی پروژهٔ `web/` است: چه چیزی کجاست، چرا این‌طور چیده شده، و > این سند تصویر فنی پروژهٔ `web/` است: چه چیزی کجاست، چرا این‌طور چیده شده، و
> مرزهای اعتماد کدام‌اند. برای چک‌لیست امنیتی به > مرزهای اعتماد کدام‌اند. برای چک‌لیست امنیتی به
+1 -1
View File
@@ -1,4 +1,4 @@
# چک‌لیست امنیتی — نسخه وب مستقل AGY # چک‌لیست امنیتی — نسخه وب مستقل Smart Organization
> این سند «پذیرش مرحلهٔ ۱۹» در `web/TODO.md` را می‌بندد. > این سند «پذیرش مرحلهٔ ۱۹» در `web/TODO.md` را می‌بندد.
> >
+2 -2
View File
@@ -1,8 +1,8 @@
{ {
"name": "agy-web", "name": "smart-org",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"description": "AGY Web — AI Workforce Platform. Standalone multi-tenant SaaS, independent of the Telegram bot runtime.", "description": "Smart Organization — AI Workforce Platform. Standalone multi-tenant SaaS, independent of the Telegram bot runtime.",
"packageManager": "pnpm@9.12.0", "packageManager": "pnpm@9.12.0",
"engines": { "engines": {
"node": ">=20" "node": ">=20"
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "@agy/ui", "name": "@agy/ui",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"description": "Base UI components / design system for AGY Web (RTL, dark-first).", "description": "Base UI components / design system for Smart Organization (RTL, dark-first).",
"type": "module", "type": "module",
"main": "./src/index.tsx", "main": "./src/index.tsx",
"types": "./src/index.tsx", "types": "./src/index.tsx",
+1 -1
View File
@@ -1,7 +1,7 @@
"use client"; "use client";
/** /**
* Base design system for AGY Web. * Base design system for Smart Organization.
* *
* Rules encoded here (from PLAN.md §12): * Rules encoded here (from PLAN.md §12):
* - dark-first, flat surfaces, generous whitespace * - dark-first, flat surfaces, generous whitespace