work-sestym/PROJECT_STRUCTURE.md
2026-02-28 20:58:17 +01:00

4.3 KiB

Work System - Project Structure Guide

نظرة عامة

هذا المشروع مقسوم إلى 3 أجزاء رئيسية:

  • backend/: خدمة API مبنية بـ NestJS.
  • frontend/: واجهة اختبار بسيطة مبنية بـ Next.js (App Router).
  • docker-compose.yml: تشغيل الخدمات معًا (backend + frontend + postgres).

الشجرة العامة

work-system/
├── .env
├── Makefile
├── PROJECT_STRUCTURE.md
├── docker-compose.yml
├── backend/
│   ├── .git/
│   ├── Dockerfile
│   ├── nest-cli.json
│   ├── package.json
│   ├── tsconfig.json
│   ├── tsconfig.build.json
│   └── src/
│       ├── main.ts
│       ├── app.module.ts
│       ├── auth/
│       ├── branches/
│       │   └── dto/
│       ├── shifts/
│       │   └── dto/
│       ├── tasks/
│       │   └── dto/
│       └── users/
│           └── dto/
└── frontend/
    ├── .env.local
    ├── .eslintrc.json
    ├── Dockerfile
    ├── README.md
    ├── components.json
    ├── docker-compose.yml
    ├── next-env.d.ts
    ├── next.config.ts
    ├── package.json
    ├── postcss.config.js
    ├── tailwind.config.ts
    ├── tsconfig.json
    ├── public/
    └── src/
        ├── app/
        │   ├── layout.tsx
        │   ├── page.tsx
        │   ├── globals.css
        │   └── api/backend/[...path]/route.ts
        ├── components/ui/
        └── lib/utils.ts

ملفات الجذر (Root)

  • .env
    • متغيرات البيئة المشتركة (خصوصًا backend و postgres).
  • docker-compose.yml
    • تعريف الخدمات:
      • backend من ./backend
      • frontend من ./frontend
      • postgres قاعدة البيانات
  • Makefile
    • أوامر مختصرة للتشغيل:
      • make build, make up, make down, make ps, make logs
  • PROJECT_STRUCTURE.md
    • هذا الملف لتوثيق البنية.

backend/

  • package.json
    • إعدادات الحزم وسكربتات NestJS (build, start, start:dev, start:prod).
  • nest-cli.json
    • إعدادات Nest CLI وتحديد sourceRoot.
  • tsconfig.json و tsconfig.build.json
    • إعدادات TypeScript للتطوير والبناء.
  • Dockerfile
    • بناء وتشغيل backend داخل حاوية Docker.
  • src/main.ts
    • نقطة تشغيل NestJS والاستماع على APP_PORT.
  • src/app.module.ts
    • الموديول الرئيسي للتطبيق.
  • src/auth, src/branches, src/shifts, src/tasks, src/users
    • مجلدات الوحدات (Modules) الخاصة بالدومين.
  • src/*/dto
    • تعريفات DTO لكل وحدة.

frontend/

  • package.json
    • إعدادات Next.js وسكربتات التشغيل.
  • next.config.ts, next-env.d.ts
    • إعدادات Next.js.
  • tsconfig.json
    • إعدادات TypeScript للواجهة.
  • tailwind.config.ts, postcss.config.js
    • إعدادات TailwindCSS و PostCSS.
  • .eslintrc.json
    • إعداد ESLint.
  • components.json
    • إعداد shadcn/ui.
  • .env.local
    • يحتوي BACKEND_URL للاتصال بالـ backend عبر proxy.
  • Dockerfile
    • بناء وتشغيل frontend داخل Docker.
  • src/app/page.tsx
    • صفحة الواجهة الوحيدة (تسجيل دخول + اختبار endpoint محمي).
  • src/app/api/backend/[...path]/route.ts
    • Proxy server-side لتمرير الطلبات إلى backend مع الكوكيز.
  • src/components/ui/*
    • مكونات UI المستخدمة: button, input, card, label, alert.
  • src/lib/utils.ts
    • دوال مساعدة للتعامل مع class names.
  • frontend/README.md
    • تعليمات تشغيل frontend محليًا.

كيف يتم التشغيل

عبر Makefile

make build
make up
make ps

مباشرة عبر Docker Compose

docker compose build
docker compose up -d
docker compose ps

المنافذ الافتراضية

  • Backend: http://localhost:3000
  • Frontend: http://localhost:3001
  • Postgres: localhost:5432