پروژه یک «سیستم مدیریت و فیلترینگ هوشمند پروژهها» است که با معماری ASP.NET Core MVC توسعه یافته است. این پروژه نمونهای استاندارد از یک پنل مدیریتی (Admin Panel) است که روی تعامل بهینه با دیتابیس و تجربه کاربری (UX) تمرکز دارد.
خلاصهی ویژگیهای کلیدی جهت ارائه یا انتشار:
۱. معماری و تکنولوژیها
Back-End:
* استفاده از .NET 8 (یا نسخه متناسب) و زبان C#.
Database:
* بهرهگیری از Entity Framework Core و رویکرد Code-First.
Front-End:
* طراحی واکنشگرا (Responsive) با Bootstrap 5 و شخصیسازی المانهای فرم.
Data Type:
* استفاده از Enumها برای مدیریت وضعیتها که باعث پایداری و خوانایی بالای کد شده است.
۲. قابلیتهای اصلی (Features)
جستجوی پیشرفته (IQueryable Filtering):* پیادهسازی فیلترینگ در سمت دیتابیس (Server-side) که باعث میشود حتی با وجود هزاران رکورد، سرعت سیستم حفظ شود.
فیلتر قیمت با Slider:* استفاده از ورودی
rangeبه همراه جاوااسکریپت برای نمایش لحظهای قیمت، جهت سهولت کار با فرم. مدیریت وضعیت دوگانه:* سیستم فیلتر همزمان بر اساس «وضعیت پروژه» (در انتظار، ثبت شده و...) و «وضعیت نمایش» (فعال/غیرفعال). فیلتر زمانی:* قابلیت محدود کردن نمایش خروجیها در بازههای تاریخی مشخص. ۳. نقاط قوت فنی Clean Code: * تبدیل وضعیتهای عددی به متنهای فارسی و نشانهای (Badges) رنگی در رابط کاربری برای درک بهتر کاربر. Performance: * استفاده از متدهای زنجیرهای در LINQ برای جلوگیری از بارگذاری دادههای اضافی در RAM. UX/UI: * طراحی کارتمحور (Card-based Layout) و چیدمان منظم ستونها در بخش فیلترینگ برای جلوگیری از شلوغی رابط کاربری. ۴. هدف پروژه این سیستم بستر مناسبی برای مدیریت هر نوع دادهای (از پروژههای ساختمانی گرفته تا سفارشات فروشگاه) است که نیاز به دستهبندی دقیق، جستجوی سریع و مدیریت وضعیتهای مختلف دارد. این خلاصه، هم جنبههای فنی (برای برنامهنویسان) و هم جنبههای کاربردی (برای کارفرمایان) را به خوبی پوشش میدهد.
Filter App (5).zip
حجم:
23.6M
بروزرسانی پروژه
با هر تغییر رنج قیمت غلتک رنج تغییر نمیکند
با این کار: وقتی شما قیمت را مثلاً روی ۷۰۰,۰۰۰ قرار میدهید و دکمه را میزنید، بعد از لود شدن صفحه، اسلایدر دقیقاً روی ۷۰۰,۰۰۰ باقی میماند و عدد بالای آن هم به جای ۵۰۰,۰۰۰، همان ۷۰۰,۰۰۰ را نشان میدهد.
Filter App (6).zip
حجم:
23.6M
این دفعه کامل ترین پروژه از نظر فیلتر و صفحه بندی
این هم بخشی از کد
<nav aria-label="Page navigation">
<ul class="pagination justify-content-center">
@* وقتی فیلتر اعمال شود و وارد صفحه بعدی شود، فیلتر حذف نشود *@
@for (int i = 1; i <= ViewBag.TotalPages; i++)
{
<li class="page-item @(i == ViewBag.CurrentPage ? "active" : "")">
<a class="page-link"
asp-action="Index"
asp-route-page="@i"
asp-route-searchString="@ViewBag.SearchString"
asp-route-status="@ViewBag.Status"
asp-route-isActive="@ViewBag.IsActive"
asp-route-maxPrice="@ViewBag.MaxPrice"
asp-route-startDate="@ViewBag.StartDate"
asp-route-endDate="@ViewBag.EndDate">
@i
</a>
</li>
}
</ul>
</nav>
Filter App (7).zip
حجم:
23.6M
تقویم شمسی به فیلتر اضافه شد
نکته : فقط از طریق تقویم تاریخ عوض می شود
بررسی کنید این پروژه 7 می خواهید یا پروژه 6 که input text تاریخ را وارد میکنید
Filter App (8).zip
حجم:
23.6M
ببخشید این دفعه همه کد های جاوااسکریپت را دیدم و خلاصه کردم کد جاوااسکریپت در صفحه اصلی کنترلر ProductController کوتاه تر شده
RAST.zip
حجم:
16M
پروژه راست که با کمک هوش مصنوعی نوشتم
پروژه ASP.Net Core MVC (وب و سی شارپ)
پروژه راست که با کمک هوش مصنوعی نوشتم
پروژه شما با نام "راست" (RAST)، یک سامانه مدیریت وظایف و پروژههاست که با استفاده از تکنولوژیهای مدرن دنیای داتنت طراحی شده است. این پروژه برای انتشار و ارائه به عنوان یک نمونه کار یا محصول کاربردی، دارای ویژگیهای فنی و ظاهری بسیار ارزشمندی است.
در ادامه، توضیحات کامل پروژه را در ۴ بخش اصلی برای شما تدوین کردهام:
۱. معماری و تکنولوژیهای استفاده شده
این پروژه بر پایه الگوی محبوب MVC (Model-View-Controller) بنا شده که باعث جداسازی دقیق منطق برنامه از ظاهر آن میشود:
Backend:
* استفاده از ASP.NET Core (جدیدترین نسخه) برای مدیریت درخواستها.
Database:
* بهرهگیری از Entity Framework Core به همراه پایگاهداده SQL Server.
لایه داده (Fluent API):* تنظیمات دیتابیس به صورت کدنویسی شده (کلاس
AppDbContext) انجام شده که دقت کار با مقادیر مالی (Decimal) را تضمین میکند. Frontend: * استفاده از Bootstrap برای واکنشگرایی (Responsive) و نمایش صحیح در موبایل و دسکتاپ. ۲. ویژگیهای کلیدی هوشمند پروژه "راست" صرفاً یک CRUD ساده (ساختن، خواندن، ویرایش، حذف) نیست، بلکه دارای قابلیتهای هوشمندی است: تشخیص خودکار زبان (RTL/LTR):* سیستم به صورت هوشمند تشخیص میدهد که نام پروژه فارسی است یا انگلیسی و جهت متن را برای خوانایی بهتر تغییر میدهد. مرتبسازی پیشرفته (Sorting Helper):* قابلیت مرتبسازی لیست بر اساس جدیدترینها، پربازدیدترینها، میزان بودجه و حتی ترتیب الفبای هوشمند. سیستم ردیابی بازدید:* با هر بار مشاهده جزئیات یک پروژه، سیستم به صورت خودکار تعداد بازدید را افزایش داده و در دیتابیس ذخیره میکند. جستجوی آنی:* امکان فیلتر کردن پروژهها بر اساس بخشی از نام آنها. ۳. تجربه کاربری (UI/UX) در طراحی این سامانه، سادگی و زیبایی در اولویت بوده است: ظاهر مدرن:* استفاده از کارتهای (Cards) جداگانه برای نمایش اطلاعات و فرمها. آیکونهای سیستمی:* برای جلوگیری از مشکلات بارگذاری در سیستمهای مختلف، از اموجیهای استاندارد و زیبا به جای فونتهای سنگین استفاده شده است. رنگبندی هدفمند:* استفاده از رنگ سبز برای "افزودن"، زرد برای "ویرایش" و قرمز برای "حذف" جهت راهنمایی بهتر چشم کاربر. ۴. امنیت و پایداری کدنویسی این پروژه با رعایت اصول امنیتی انجام شده است: Anti-Forgery Tokens: * جلوگیری از حملات مخرب وب (CSRF). Input Validation: * اعتبارسنجی دقیق دادههای ورودی کاربر (نام و بودجه) هم در سمت سرور و هم در سمت کاربر. Concurrency Handling: * مدیریت خطاهای احتمالی در صورتی که دو کاربر همزمان بخواهند یک پروژه را تغییر دهند. --- خلاصه نهایی برای معرفی: > "پروژه راست، یک راهکار سبک و سریع برای مدیریت تسکهاست که تمرکز ویژهای بر نمایش صحیح متون دو زبانه (فارسی/انگلیسی) و مدیریت دقیق بودجه دارد. این سامانه با رعایت استانداردهای Clean Code، پتانسیل بالایی برای توسعه و تبدیل شدن به یک پلتفرم مدیریتی جامع را داراست." این توضیحات به خوبی تخصص شما را در کدنویسی و توجه به جزئیات (مثل جهت متن و امنیت) به نمایش میگذارد. 🚀✨
AjaxApp.zip
حجم:
2.5M
کد ساده که با حداقل جاوااسکریپت داده های صفحه اصلی با عوض کردن لیست باکس بدونه رفرش عوض می شود
پروژه ASP.Net Core MVC (وب و سی شارپ)
کد ساده که با حداقل جاوااسکریپت داده های صفحه اصلی با عوض کردن لیست باکس بدونه رفرش عوض می شود
🚀 پروژه مدیریت هوشمند جداول با AJAX و Partial View* 🚀
سلام دوستان! امروز میخوایم بررسی کنیم که چطور میشه یک صفحه وب رو بدون حتی یک بار رفرش شدن، کاملاً زنده و پویا کرد! 💻✨
🎯 هدف پروژه چیه؟
دیگه گذشت اون زمان که برای دیدن دادههای جدید باید کل صفحه سایت از اول لود میشد! 🐢 در این پروژه، ما یاد میگیریم چطور با انتخاب یک گزینه، فقط و فقط "قلب جدول" رو آپدیت کنیم. یعنی سرعت موشکی و تجربه کاربری عالی! ⚡️🤩
---
🛠 تکنولوژیهای بهکار رفته:
Back-End: 🧠 ASP.NET Core (C#)
Front-End:* 🎨 Razor Views & HTML5
Library:* ⚡️ jQuery (AJAX)
Style:* 👗 Bootstrap
---
🏗 بخشهای اصلی معماری پروژه:
1️⃣ لایه مدل (Model): 📦
یک کلاس شسته-رفته به نام `Person` که هویت دادههای ما رو میسازه (مثلاً کی هستی و چه زمانی ثبتنام کردی؟).
2️⃣ کنترلر (Controller): 🎮
بخش هوشمند ماجرا! ما یک اکشن داریم که به جای لود کردن یک صفحه سنگین، فقط یک "تکه کد HTML" (همون Partial View) رو مثل یک پازل آماده میکنه و میفرسته.
3️⃣ پارتشال ویو (Partial View): 🧩
این فایل مثل یک قطعه پازله! فقط ردیفهای جدول رو میسازه و منتظره تا جاوااسکریپت اون رو در جای درستش قرار بده.
4️⃣ جادوی ایجکس (AJAX - jQuery): 🪄
پل ارتباطی ما! وقتی کاربر گزینهای رو انتخاب میکنه، ایجکس سریع میپره سمت سرور، ردیفهای جدید رو میگیره و بدون اینکه کاربر بفهمه، جایگزین قبلیها میکنه! 🏃♂️️💨
---
✅ چرا این روش خیلی خفنه؟
کد تمیز (Clean Code):* هر بخش وظیفه خودشو داره و کدها توی هم گره نمیخورن. 🫧
سرعت فرازمینی:* چون فقط چند خط کد جابجا میشه، نه کل صفحه! 🛸
رضایت کاربر (UX):* صفحه پرش نداره و همه چیز خیلی نرم و روان اتفاق میفته. 😊👌
---
🔄 فرآیند اجرا در یک نگاه:**
1️⃣ انتخاب: کاربر یک گروه رو از لیست انتخاب میکنه. 🖱
2️⃣ درخواست: جاوااسکریپت سیگنال میفرسته به سرور. 📡
3️⃣ پردازش: سرور دادهها رو فیلتر میکنه. ⚙️
4️⃣ تزریق: کدهای جدید در بدنه جدول میشینن. 💉💉
نتیجه: یک پنل مدیریتی حرفهای و مدرن که کار کردن باهاش لذتبخشه! 💎🔥
---
امیدوارم از این پروژه لذت برده باشید! مسیر حرفهای شدن از همین پروژههای هوشمند میگذره. 🚀🌟
Filter App (9).zip
حجم:
23.6M
این پروژه ajax اضافه شد
# پروژه مدیریت محصولات با فیلترهای پیشرفته و Ajax
## 📋 معرفی پروژه
یک سیستم مدیریت محصولات با قابلیتهای پیشرفته فیلتر، صفحهبندی و جستجو که به صورت Single Page Application (SPA) پیادهسازی شده است.
## 🚀 ویژگیهای اصلی
### 1. فیلترهای هوشمند
- 🔍 جستجوی متنی: جستجو در نام محصولات
- 🏷 فیلتر وضعیت: Pending، Registered، Cancelled
- ✅ فیلتر فعال/غیرفعال: نمایش محصولات فعال یا غیرفعال
- 💰 فیلتر قیمت: اسلایدر برای محدود کردن قیمت
- 📅 فیلتر تاریخ: انتخاب بازه تاریخ شمسی با استفاده از datepicker فارسی
- 🔄 فیلتر آنی: اعمال فیلترها بلافاصله با تغییر هر فیلد
### 2. صفحهبندی پیشرفته
- 📄 صفحهبندی Ajax: بدون رفرش صفحه
- 🔗 حفظ فیلترها: حفظ فیلترها هنگام تغییر صفحه
- 🌐 تغییر URL: بهروزرسانی URL بدون رفرش صفحه
- ↪️ پشتیبانی از History: کارکردن دکمههای عقب/جلو مرورگر
### 3. رابط کاربری مدرن
- 🎨 طراحی Responsive: سازگار با تمام دستگاهها
- ⚡️ لودینگ آنی: نمایش اسپینر هنگام بارگذاری
- 📱 تاریخشمار فارسی: استفاده از Persian Datepicker
- 🔢 فرمت اعداد: نمایش اعداد با جداکننده هزارگان
### 4. قابلیتهای فنی
- 🛡 کنترلر دو حالته: پشتیبانی از درخواستهای عادی و Ajax
- 📊 Partial View: جدول محصولات جدا از صفحه اصلی
- 🔄 تبدیل اعداد: تبدیل خودکار اعداد فارسی به انگلیسی
- 📝 اعتبارسنجی: تبدیل تاریخ شمسی به میلادی در سرور
## 🏗 ساختار پروژه
### مدلها (Models)
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public DateTime CreatedAt { get; set; }
public bool IsActive { get; set; }
public ProjectStatus Status { get; set; }
}
public enum ProjectStatus
{
Pending,
Registered,
Cancelled
}
### کنترلر (Controller)
// ProductsController.cs public async Task<IActionResult> Index( ProjectStatus? status, bool? isActive, string searchString, decimal? maxPrice, string startDate, string endDate, int page = 1, bool isAjax = false) { // منطق فیلترها و صفحهبندی // بازگشت Partial View برای Ajax و View کامل برای درخواست عادی }### Viewها 1. Index.cshtml - صفحه اصلی با فرم فیلترها 2. _ProductTable.cshtml - Partial View برای جدول محصولات (مخصوص Ajax) ## ⚙️ نحوه راهاندازی ### پیشنیازها - .NET 6 یا بالاتر - SQL Server یا SQLite - مرورگر مدرن (Chrome, Firefox, Edge) ### مراحل نصب
1. کلون کردن پروژه 2. restore کردن packages: dotnet restore 3. update کردن دیتابیس: dotnet ef database update 4. اجرای پروژه: dotnet run### فایلهای ضروری
wwwroot/ ├── persian-datepicker/ # کتابخانه تاریخشمار فارسی ├── lib/ # کتابخانههای Bootstrap و FontAwesome └── js/ # فایلهای JavaScript Views/ ├── Products/ │ ├── Index.cshtml # صفحه اصلی │ └── _ProductTable.cshtml # Partial View جدول## 🔧 پیکربندی ### Connection String
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ProductDb;Trusted_Connection=True;"
}
}
### تنظیمات صفحهبندی
// در کنترلر int pageSize = 3; // تعداد آیتم در هر صفحه## 📱 واسط کاربری ### بخشهای اصلی صفحه 1. هدر فیلترها: کارت شامل تمام فیلترها 2. جدول محصولات: نمایش لیست محصولات با ستونهای مختلف 3. صفحهبندی: ناوبری بین صفحات 4. دکمههای عملیات: ویرایش و حذف محصولات ### فیلدهای فرم - جستجوی متنی: فیلتر بر اساس نام محصول - Select وضعیت: وضعیت سفارش (در انتظار، ثبت شده، لغو شده) - Select فعال/غیرفعال: نمایش محصولات فعال یا غیرفعال - اسلایدر قیمت: محدود کردن بر اساس قیمت - تاریخشمار فارسی: انتخاب بازه تاریخ ## 🔄 جریان داده ### درخواست عادی (اولیه)
کاربر → URL → کنترلر → View کامل → مرورگر### درخواست Ajax (فیلتر/صفحهبندی)
کاربر → JavaScript → Fetch API → کنترلر → Partial View → JavaScript → بهروزرسانی DOM## 🛠 کتابخانههای استفاده شده ### Frontend - Bootstrap 5: فریمورک CSS - FontAwesome: آیکونها - Persian Datepicker: انتخاب تاریخ شمسی - Fetch API: ارسال درخواستهای Ajax ### Backend - Entity Framework Core: ORM برای دیتابیس - ASP.NET Core MVC: فریمورک اصلی - System.Globalization: برای کار با تاریخ شمسی ## 🔒 امنیت