تغییر نام اپلیکیشن به 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:
+1
-1
@@ -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.
|
||||||
|
|||||||
@@ -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,4 +1,4 @@
|
|||||||
# AGY Web — پلتفرم نیروی کار هوش مصنوعی
|
# Smart Organization — پلتفرم نیروی کار هوش مصنوعی
|
||||||
|
|
||||||
نسخهٔ وب مستقل و چندسازمانی محصول. این پروژه **کاملاً جدا از ربات تلگرام** است و
|
نسخهٔ وب مستقل و چندسازمانی محصول. این پروژه **کاملاً جدا از ربات تلگرام** است و
|
||||||
هیچ فایلی از ریشهٔ مخزن را در runtime خود import نمیکند.
|
هیچ فایلی از ریشهٔ مخزن را در runtime خود import نمیکند.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# TODO اجرای کامل نسخه وب مستقل AGY
|
# TODO اجرای کامل نسخه وب مستقل Smart Organization
|
||||||
|
|
||||||
> **وضعیت (بهروزرسانی نهایی):** پیادهسازی کامل شده است.
|
> **وضعیت (بهروزرسانی نهایی):** پیادهسازی کامل شده است.
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -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.
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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: "سازمان بسازید، کارمند هوش مصنوعی استخدام کنید و کارها را بسپارید.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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,4 +1,4 @@
|
|||||||
# نمای کلی معماری — نسخه وب مستقل AGY
|
# نمای کلی معماری — نسخه وب مستقل Smart Organization
|
||||||
|
|
||||||
> این سند تصویر فنی پروژهٔ `web/` است: چه چیزی کجاست، چرا اینطور چیده شده، و
|
> این سند تصویر فنی پروژهٔ `web/` است: چه چیزی کجاست، چرا اینطور چیده شده، و
|
||||||
> مرزهای اعتماد کداماند. برای چکلیست امنیتی به
|
> مرزهای اعتماد کداماند. برای چکلیست امنیتی به
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# چکلیست امنیتی — نسخه وب مستقل AGY
|
# چکلیست امنیتی — نسخه وب مستقل Smart Organization
|
||||||
|
|
||||||
> این سند «پذیرش مرحلهٔ ۱۹» در `web/TODO.md` را میبندد.
|
> این سند «پذیرش مرحلهٔ ۱۹» در `web/TODO.md` را میبندد.
|
||||||
>
|
>
|
||||||
|
|||||||
+2
-2
@@ -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"
|
||||||
|
|||||||
@@ -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,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
|
||||||
|
|||||||
Reference in New Issue
Block a user