Add a comprehensive note-taking system similar to Google Keep

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
This commit is contained in:
riyadhafraa
2026-04-21 06:35:39 +00:00
parent 0d070ef71f
commit ba199cac42
@@ -0,0 +1,229 @@
الموضوع: إنشاء نظام "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) وليست مجرد واجهة شكلية.