ba199cac42
Adds three new tables (notes, note_items, note_shares) for storing note data, checklist items, and sharing permissions. Includes API endpoints and UI considerations for creating, editing, viewing, and managing notes, with features like pinning, color-coding, archiving, and user sharing. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 77cfe984-2c65-4152-bb7a-0df28274fe66 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: f9708c33-0313-4d52-9aaf-39f564d4af34 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/c3c252e4-c83d-40ca-9fff-99a3ea60701e/77cfe984-2c65-4152-bb7a-0df28274fe66/pCDTgLS Replit-Helium-Checkpoint-Created: true
229 lines
5.1 KiB
Plaintext
229 lines
5.1 KiB
Plaintext
الموضوع: إنشاء نظام "Note" داخل منصة TeaBoy
|
|
|
|
أريد إضافة ميزة داخل النظام باسم "Note"، تكون نظام ملاحظات بسيط واحترافي يشبه Google Keep، مع دعم:
|
|
|
|
- الملاحظات النصية (Note)
|
|
- القوائم (List / Checklist)
|
|
- الألوان
|
|
- التثبيت (Pin)
|
|
- المشاركة مع الأعضاء
|
|
- الصلاحيات
|
|
|
|
--------------------------------------------------
|
|
1) الكيان الرئيسي
|
|
--------------------------------------------------
|
|
|
|
إنشاء جدول:
|
|
notes
|
|
|
|
الحقول:
|
|
- id
|
|
- title
|
|
- content (للنص)
|
|
- type (note | list)
|
|
- color (hex)
|
|
- isPinned (boolean)
|
|
- isArchived (boolean)
|
|
- isDeleted (soft delete)
|
|
- ownerUserId
|
|
- createdAt
|
|
- updatedAt
|
|
|
|
--------------------------------------------------
|
|
2) عناصر القائمة (Checklist)
|
|
--------------------------------------------------
|
|
|
|
جدول:
|
|
note_items
|
|
|
|
الحقول:
|
|
- id
|
|
- noteId
|
|
- text
|
|
- isCompleted (boolean)
|
|
- sortOrder
|
|
- createdAt
|
|
- updatedAt
|
|
|
|
--------------------------------------------------
|
|
3) المشاركة (Sharing)
|
|
--------------------------------------------------
|
|
|
|
جدول:
|
|
note_shares
|
|
|
|
الحقول:
|
|
- id
|
|
- noteId
|
|
- userId
|
|
- permission (view | edit)
|
|
- createdAt
|
|
|
|
المنطق:
|
|
- صاحب الملاحظة هو المالك
|
|
- يمكنه مشاركة الملاحظة مع مستخدمين
|
|
- view = مشاهدة فقط
|
|
- edit = تعديل كامل
|
|
|
|
--------------------------------------------------
|
|
4) الواجهة (UI)
|
|
--------------------------------------------------
|
|
|
|
إنشاء صفحة:
|
|
Note
|
|
|
|
التصميم:
|
|
- Grid مثل Google Keep
|
|
- بطاقات (Cards) لكل ملاحظة
|
|
- خلفية فاتحة وألوان هادئة
|
|
- Responsive (جوال / آيباد / كمبيوتر)
|
|
|
|
كل بطاقة تعرض:
|
|
- العنوان
|
|
- محتوى مختصر أو checklist
|
|
- اللون
|
|
- نوعها (Note / List)
|
|
- أيقونة إذا كانت مشتركة
|
|
- حالة التثبيت
|
|
|
|
--------------------------------------------------
|
|
5) الوظائف الأساسية
|
|
--------------------------------------------------
|
|
|
|
- إنشاء Note
|
|
- إنشاء List
|
|
- تعديل
|
|
- حذف (Soft delete)
|
|
- أرشفة
|
|
- تثبيت / إلغاء التثبيت
|
|
- تغيير اللون
|
|
- مشاركة مع مستخدمين
|
|
- إلغاء المشاركة
|
|
|
|
--------------------------------------------------
|
|
6) نافذة الإنشاء
|
|
--------------------------------------------------
|
|
|
|
Modal أو صفحة تحتوي على:
|
|
|
|
- title
|
|
- type (note / list)
|
|
- content (إذا Note)
|
|
- checklist (إذا List)
|
|
- color picker
|
|
- pin toggle
|
|
- share users + permission
|
|
|
|
--------------------------------------------------
|
|
7) الفلاتر والتنظيم
|
|
--------------------------------------------------
|
|
|
|
إضافة Tabs:
|
|
|
|
- All
|
|
- My Notes
|
|
- Shared With Me
|
|
- Pinned
|
|
- Archived
|
|
|
|
إضافة:
|
|
- بحث
|
|
- فلترة حسب اللون
|
|
- ترتيب (الأحدث / الأقدم / المثبتة)
|
|
|
|
--------------------------------------------------
|
|
8) الصلاحيات
|
|
--------------------------------------------------
|
|
|
|
Super Admin:
|
|
- يرى كل الملاحظات
|
|
|
|
Admin:
|
|
- يرى ملاحظاته + المشاركات
|
|
|
|
User:
|
|
- يرى:
|
|
- ملاحظاته
|
|
- الملاحظات المشتركة معه
|
|
|
|
مهم:
|
|
- التحقق من الصلاحيات في backend
|
|
|
|
--------------------------------------------------
|
|
9) API
|
|
--------------------------------------------------
|
|
|
|
GET /api/notes
|
|
GET /api/notes/:id
|
|
POST /api/notes
|
|
PATCH /api/notes/:id
|
|
DELETE /api/notes/:id
|
|
|
|
POST /api/notes/:id/pin
|
|
POST /api/notes/:id/archive
|
|
POST /api/notes/:id/share
|
|
DELETE /api/notes/:id/share/:userId
|
|
|
|
Checklist:
|
|
POST /api/notes/:id/items
|
|
PATCH /api/notes/:id/items/:itemId
|
|
DELETE /api/notes/:id/items/:itemId
|
|
|
|
--------------------------------------------------
|
|
10) الألوان
|
|
--------------------------------------------------
|
|
|
|
ألوان افتراضية:
|
|
- أصفر
|
|
- أخضر
|
|
- أزرق
|
|
- أحمر
|
|
- بنفسجي
|
|
- رمادي
|
|
|
|
+ Color Picker
|
|
|
|
يجب أن تكون:
|
|
- هادئة
|
|
- مناسبة للـ Light UI
|
|
- النص واضح فوقها
|
|
|
|
--------------------------------------------------
|
|
11) تحسينات UX
|
|
--------------------------------------------------
|
|
|
|
- Auto-save
|
|
- Toast notifications
|
|
- Skeleton loading
|
|
- Confirm delete
|
|
- Empty states
|
|
- عرض صورة المستخدمين المشاركين
|
|
- Badge:
|
|
- Note / List
|
|
- Shared / Private
|
|
|
|
--------------------------------------------------
|
|
12) الترجمة
|
|
--------------------------------------------------
|
|
|
|
دعم:
|
|
- العربية (RTL)
|
|
- الإنجليزية (LTR)
|
|
|
|
باستخدام i18n
|
|
|
|
--------------------------------------------------
|
|
13) التنفيذ
|
|
--------------------------------------------------
|
|
|
|
أريد:
|
|
- Database schema
|
|
- Backend كامل
|
|
- Frontend pages
|
|
- Clean code
|
|
- Responsive
|
|
- Production-ready
|
|
|
|
--------------------------------------------------
|
|
ملاحظة:
|
|
الميزة يجب أن تكون حقيقية (Functional) وليست مجرد واجهة شكلية. |