Enjaz
systems / مدير-الجلسات-والملفات-الشخصية
serviceمُنشَر

مدير الجلسات والملفات الشخصية

تطبيق Desktop بواجهة دكنة لإدارة عشرات جلسات Playwright في نفس الوقت، مع حفظ Profiles منفصلة لكل جلسة، تكامل SQLite، وLogging كامل.

PythonPlaywrightCustomTkinterSQLiteMulti-Session

abstract

أداة احترافية تحلّ أكبر مشكلة عند العمل بحسابات متعددة: عزل الجلسات وإدارتها.

🎯 المشكلة: التطبيقات تخلط cookies/storage بين الجلسات، تكشف التتبّع، وتفقد الـ context.

✨ الحل: نظام Profile-per-session يعزل كل جلسة في مساحة كاملة منفصلة.

الميزات: • Playwright Persistent Context — Profile كامل لكل جلسة • واجهة CustomTkinter Dark Mode احترافية • SQLite لتخزين الـ metadata + Sessions + Logs • مراقبة كل جلسة لحظياً (running/idle/failed) • استيراد/تصدير Profiles • Auto-retry + Recovery • إدارة Multi-window متوازية

architecture

  ┌──────────────┐      ┌────────────┐      ┌─────────────┐
  │  client      │─────▶│   nginx    │─────▶│  next.js    │
  │  (browser)   │      │  (proxy)   │      │  (ssr)      │
  └──────────────┘      └─────┬──────┘      └──────┬──────┘
                              │                    │
                              ▼                    ▼
                        ┌───────────┐        ┌──────────┐
                        │ fastapi   │◀──────▶│ postgres │
                        │ (asyncio) │        │ (asyncpg)│
                        └───────────┘        └──────────┘

Stateless API behind a reverse proxy. SSR delivers HTML in under a second on warm cache. Connection pool keeps Postgres hot. JWT in HttpOnly cookie for the admin panel.

notes

  • SSR-first to keep TTFB < 1s on cold visits.
  • Type-checked end-to-end via Pydantic schemas mirrored to TS.
  • Migrations versioned via Alembic; zero-downtime restarts.