تطبيق ويب لتتبع المصروفات الشخصية - Django

السلام عليكم يا جماعة
بعد فترة من التعلم، حبيت أشارككم أول مشروع متكامل ليا باستخدام Django
المشروع اسمه Expense Tracker - تطبيق لتتبع المصروفات الشخصية، وفيه:
نظام تسجيل دخول وإنشاء حساب (Authentication)

إضافة/تعديل/حذف المصروفات

Dashboard فيها إحصائيات (إجمالي المصروفات، مصروفات الشهر، عدد التصنيفات...)

تصنيف المصروفات (طعام، نقل، فواتير، ترفيه...)

Dark/Light Mode

تصميم responsive باستخدام Bootstrap

لوحة تحكم Admin مخصصة (Django Jazzmin) لإدارة المستخدمين والمصروفات

ملحوظة: المشروع شغال محلي (Local) لحد دلوقتي، ومفيش لينك مباشر للموقع لأن النشر (Deployment) على دومين حقيقي يحتاج استضافة مدفوعة، وأنا لسه في البداية وبتعلم بالتدريج.
ممكن أعرف رأيكم في:

أفضل وأرخص طريقة لعمل deploy للمشروع كبداية (PythonAnywhere / Render / Railway)؟
نصائحكم لمطور Django لسه في بداية الطريق؟
أي ملاحظات على الكود أو الفكرة بشكل عام؟

شكراً مقدماً لكل من يفيدني

https://suar.me/WPeo0

عن الموضوع

التعليقات (9)

منذ 4 أيام و8 ساعات
أحسنت بشمهندس رامي
منذ 4 أيام و8 ساعات
أعمال ممتازة, بالتوفيق.
منذ 4 أيام و6 ساعات
ممتاز, بالتوفيق
منذ 4 أيام و4 ساعات
وعليكم السلام ورحمة الله وبركاته بشمهندس رامي،ما شاء الله، بداية قوية وممتازة جداً لمشروع متكامل (Full-Stack) باستخدام Django. اختيارك لـ Jazzmin ممتع بصرياً، وإضافة الـ Dark Mode تظهر اهتمامك بتجربة المستخدم (UX).كمطور Django، إليك إجابات تقنية مباشرة وعميقة على أسئلتك لخطوتك القادمة:1. أفضل وأرخص طريقة للـ Deployment (حل مشكلة التكلفة):لست بحاجة لاستضافة مدفوعة كبداية، يمكنك النشر مجاناً 100%، وأنصحك بـ Render أو Railway وتجنب PythonAnywhere لأنها تقيدك في التحديثات. ولكن انتبه للخطوات التالية لكي ينجح النشر:قاعدة البيانات: لا تستخدم SQLite على السيرفر لأن بياناتها ستمحى تلقائياً عند نوم السيرفر (Ephemeral storage). قم بإنشاء قاعدة بيانات PostgreSQL مجانية على منصة مثل Neon.tech أو Supabase وربطها بملف settings.py عبر مكتبة dj-database-url.الملفات الثابتة: استخدم مكتبة WhiteNoise لكي يقوم Django بتقديم ملفات الـ CSS والـ Bootstrap مباشرة دون الحاجة لسيرفر Nginx مستقل.الأمان: تأكد من تحويل DEBUG = False وفصل الـ SECRET_KEY في ملف .env باستخدام python-dotenv قبل الرفع على GitHub.2. مشكلة تقنية سيواجهها التطبيق مستقبلاً وكيف تحلها:بما أن التطبيق يتتبع حسابات مالية ومصروفات، بمجرد أن يكبر حجم البيانات لكل مستخدم، ستواجه بطئاً كبيراً في تحميل الـ Dashboard أثناء حساب المجاميع والتصنيفات.الحل من الآن: استخدم الـ db_index=True في حقول الـ user والـ category داخل الـ Models لتسريع عمليات الفلترة ($Queries$).اعتمد على الـ Aggregation والـ Annotation من Django ORM لحساب الإجمالي مباشرة داخل قاعدة البيانات بدلاً من حسابها عبر لغتك البرمجية بايثون لتوفير استهلاك الذاكرة.3. نصيحة لمستقبلك في Django:لا تتوقف عند النمط التقليدي (Monolithic). خطوتك القادمة الاحترافية هي تعلم Django Rest Framework (DRF) لتحويل مشروعك هذا إلى (API)، ثم بنائه كـ تطبيق موبايل بـ Flutter أو واجهة بـ React. هذا ما يطلبه سوق العمل حالياً بكثافة.كمطور زميل، لو واجهتك أي مشكلة أثناء ضبط المستودع أو ربط الـ PostgreSQL على Render، يسعدني جداً مساعدتك لتخطيها بنجاح ومتابعة كود المشروع معك. بالتوفيق يا بطل!"
منذ 4 أيام و4 ساعات
ما شاء الله
بالتوفيق لك
منذ 4 أيام و3 ساعات
ربي يسر..
منذ ساعتين و30 دقيقة
شكرا جدا لحضراتكم
منذ ساعتين و27 دقيقة
بقول لحضرتك
.Zineddine K
render يطلب احط كارت و انا معيش بطاقة دوليه انا لسه في البداية
منذ 25 دقيقة
موفق اجمل مهندس مبدع

أضف تعليق

سجّل دخول لتتمكن من إضافة تعليق على هذا الموضوع.

عن الموضوع