Added a changelog section detailing recent updates including confirmation dialogs, button layout fixes, monthly amount display, payment description visibility, pull-to-refresh functionality, and changes to the archive page.
62 lines
6.3 KiB
Markdown
62 lines
6.3 KiB
Markdown
# مدیریت حقوق ماهانه (Monthly Payment App)این پروژه یک اپلیکیشن اندرویدی مدرن برای مدیریت حقوق ماهانه است. برنامه به صورت **کلاینت-سرور** طراحی شده و به چندین کاربر اجازه میدهد تا با یک حساب مشترک، اطلاعات را به صورت متمرکز مدیریت کنند.
|
|
|
|
## 🚀 قابلیتهای کلیدی
|
|
|
|
این اپلیکیشن با تمرکز بر سادگی و کارایی، امکانات زیر را ارائه میدهد:
|
|
|
|
### ۱. **سیستم چند کاربره و آنلاین**
|
|
- **یک حساب، چند کاربر:** چندین کاربر میتوانند با یک نام کاربری و رمز عبور مشترک وارد برنامه شوند.
|
|
- **همگامسازی متمرکز:** تمام اطلاعات (افراد و پرداختها) روی یک سرور مرکزی (VPS) ذخیره میشود.
|
|
- **دسترسی از هر کجا:** کاربران از دستگاههای مختلف به دادههای یکسان دسترسی دارند.
|
|
|
|
### ۲. **مدیریت کامل افراد**
|
|
- **افزودن و حذف:** امکان افزودن افراد جدید و حذف آنها از لیست.
|
|
- **مرتبسازی خودکار:** لیست افراد به صورت خودکار بر اساس **تاریخ ایجاد** (از قدیمیترین به جدیدترین) مرتب میشود.
|
|
- **شمارهگذاری خوانا:** هر شخص در لیست یک شماره ردیف فارسی برای دسترسی سریعتر دارد.
|
|
|
|
### ۳. **مدیریت پیشرفته پرداختها**
|
|
- **پرداخت سریع:** امکان ثبت پرداخت برای **ماه جاری** با یک کلیک از صفحه اصلی.
|
|
- **تاریخچه کامل پرداخت:** با کلیک روی هر شخص، یک **صفحه کشویی (Bottom Sheet)** باز میشود که تاریخچه کامل پرداختهای او را به تفکیک سال و ماه نمایش میدهد.
|
|
- **نمایش وضعیت ماهها:** ماهها با وضعیتهای مختلف (پرداخت شده، در دسترس، مربوط به آینده/گذشته) و با رنگها و آیکونهای متفاوت نمایش داده میشوند.
|
|
- **جزئیات دقیق پرداخت:** با کلیک روی یک پرداخت ثبتشده، تاریخ و زمان دقیق آن در یک دیالوگ نمایش داده میشود.
|
|
- **ویرایش و حذف پرداخت:** امکان ویرایش مبلغ یا حذف کامل یک پرداخت از تاریخچه وجود دارد.
|
|
|
|
### ۴. **تجربه کاربری (UX) و طراحی (UI)**
|
|
- **طراحی مدرن:** استفاده از کامپوننتهای Material 3 و طراحی تمیز و چشمنواز.
|
|
- **پشتیبانی کامل از زبان فارسی:**
|
|
- **رابط کاربری راستبهچپ (RTL).**
|
|
- **اعداد فارسی:** تمام اعداد در برنامه (مبالغ، تاریخ، تعداد) به صورت فارسی نمایش داده میشوند.
|
|
- **قالببندی خودکار مبالغ:** اعداد مربوط به مبلغ در حین تایپ به صورت خودکار با **جداکننده هزارگان** (مانند `۲۰۰٬۰۰۰`) قالببندی میشوند.
|
|
- **کشیدن برای بهروزرسانی (Pull to Refresh):** کاربران میتوانند با کشیدن صفحه به پایین، به راحتی آخرین اطلاعات را از سرور دریافت کنند.
|
|
- **دیالوگهای هوشمند:**
|
|
- **تأیید خروج:** برای جلوگیری از خروج تصادفی، برنامه هنگام زدن دکمه بازگشت در صفحه اصلی، یک دیالوگ تأیید نمایش میدهد.
|
|
- **چیدمان یکپارچه:** دکمههای تمام دیالوگها از یک الگوی طراحی واحد و قابل پیشبینی پیروی میکنند.
|
|
|
|
### ۵. **تنظیمات و شخصیسازی**
|
|
- **مبلغ پیشفرض:** امکان تعیین یک مبلغ پیشفرض برای پرداختها جهت تسریع فرآیند ثبت.
|
|
- **رابط ویرایش زیبا:** بخش تنظیم مبلغ پیشفرض دارای حالتهای نمایش و ویرایش برای جلوگیری از تغییرات تصادفی است.
|
|
- **پشتیبانگیری و بازیابی:** قابلیت ایجاد فایل پشتیبان (Backup) از تمام دادهها و بازیابی آن در زمان دلخواه.
|
|
|
|
## 🛠️ تکنولوژیهای استفاده شده
|
|
|
|
- **زبان برنامهنویسی:** [Kotlin](https://kotlinlang.org/)
|
|
- **رابط کاربری:** [Jetpack Compose](https://developer.android.com/jetpack/compose) (کتابخانه مدرن UI اندروید)
|
|
- **معماری:** MVVM (Model-View-ViewModel)
|
|
- **مدیریت State:** Kotlin Flows و StateFlow
|
|
- **شبکه:** [Retrofit](https://square.github.io/retrofit/) و [OkHttp](https://square.github.io/okhttp/)
|
|
- **پردازش JSON:** [Kotlinx Serialization](https://github.com/Kotlin/kotlinx.serialization)
|
|
- **ناوبری:** [Jetpack Navigation for Compose](https://developer.android.com/jetpack/compose/navigation)
|
|
- **سمت سرور (Backend):** Node.js با فریمورک Express
|
|
- **پایگاه داده:** MongoDB
|
|
|
|
|
|
## 📝 تغییرات ۱۴۰۴/۰۹/۰۱
|
|
|
|
- اضافه شدن دیالوگ تأیید برای انتقال اشخاص به آرشیو در لیست پرداختنشده و پرداختشده.
|
|
- اصلاح چیدمان دکمهها در دیالوگهای پرداخت (ثبت / ویرایش / حذف).
|
|
- نمایش مبلغ هر ماه روی نوار بالای ماه در صفحه جزئیات فرد.
|
|
- نمایش توضیحات پرداخت (در صورت وجود) زیر تاریخ ثبت در صفحه جزئیات فرد.
|
|
- اضافه شدن قابلیت رفرش لیست پرداختنشدهها با کشیدن صفحه به پایین (Pull-to-Refresh).
|
|
- حذف دکمه حذف از صفحه آرشیو، فقط دکمه بازیابی باقی مانده است.
|
|
- ذخیره و برگرداندن فیلد توضیحات پرداخت (`description`) در سرور (MongoDB) و نمایش آن در اپ.
|