4.3 KiB
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من./backendfrontendمن./frontendpostgresقاعدة البيانات
- تعريف الخدمات:
Makefile- أوامر مختصرة للتشغيل:
make build,make up,make down,make ps,make logs
- أوامر مختصرة للتشغيل:
PROJECT_STRUCTURE.md- هذا الملف لتوثيق البنية.
backend/
package.json- إعدادات الحزم وسكربتات NestJS (
build,start,start:dev,start:prod).
- إعدادات الحزم وسكربتات NestJS (
nest-cli.json- إعدادات Nest CLI وتحديد
sourceRoot.
- إعدادات Nest CLI وتحديد
tsconfig.jsonوtsconfig.build.json- إعدادات TypeScript للتطوير والبناء.
Dockerfile- بناء وتشغيل backend داخل حاوية Docker.
src/main.ts- نقطة تشغيل NestJS والاستماع على
APP_PORT.
- نقطة تشغيل NestJS والاستماع على
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.
- مكونات UI المستخدمة:
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