Added detailed project description and key features for the Monthly Payment App, including technology stack and user experience highlights.
51 lines
5.4 KiB
Markdown
51 lines
5.4 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
|