- Added /admin redirect to login page in nginx config - Fixed backend server.js route ordering for proper admin handling - Updated authentication middleware and routes - Added user management routes - Configured PostgreSQL integration - Updated environment configuration
2.6 KiB
2.6 KiB
Copilot Instructions for Sky Art Shop
Project Overview
Dynamic e-commerce CMS built with ASP.NET Core MVC 8.0, MongoDB for content, and ASP.NET Core Identity for authentication.
Completed Tasks
- ASP.NET Core MVC structure created
- MongoDB integration (Products, Portfolio, Blog, Pages, Settings, MenuItems)
- ASP.NET Core Identity + SQLite for authentication
- Admin panel with CRUD for all content types
- Public pages (Home, Shop, Portfolio, Blog, About, Contact)
- CKEditor 5 rich text editor (no API key required)
- Image upload service (wwwroot/uploads/images)
- Dynamic navigation via ViewComponent
- Seeding for default data (admin user, settings, categories, menus)
- Clean build with zero errors
- Application tested and running on http://localhost:5000
- README documentation updated
Architecture
- Backend: ASP.NET Core 8.0 MVC
- Content DB: MongoDB (connection string in appsettings.json)
- Auth DB: SQLite + EF Core + Identity
- Admin Auth: Role-based (Admin role)
- Views: Razor + Bootstrap 5 (admin) + custom CSS (public)
Key Files
Program.cs: Middleware, services, database initializationModels/DatabaseModels.cs: MongoDB entity modelsServices/MongoDBService.cs: Generic MongoDB CRUD serviceData/ApplicationDbContext.cs: EF Core Identity contextControllers/Admin*.cs: Admin CRUD controllers ([Authorize(Roles="Admin")])Controllers/*.cs: Public controllers (Shop, Portfolio, Blog, About, Contact)Views/Shared/_Layout.cshtml: Public layout with dynamic navigationViews/Shared/_AdminLayout.cshtml: Admin dashboard layoutViewComponents/NavigationViewComponent.cs: Dynamic menu rendering
Running the Project
dotnet build # Build solution
dotnet run # Start on http://localhost:5000
Admin Access
- URL: http://localhost:5000/admin/login
- Default: admin@skyartshop.com / Admin123! (configure in appsettings.json)
Future Development Guidelines
- Use MongoDBService for all MongoDB operations
- Admin controllers must use [Authorize(Roles="Admin")]
- Slug generation: lowercase, replace spaces with hyphens
- TempData["SuccessMessage"] / TempData["ErrorMessage"] for user feedback
- Image uploads go to wwwroot/uploads/images with GUID filenames
- All views use Razor syntax; avoid direct HTML files
Optional Enhancements
- Server-side validation (DataAnnotations)
- Email service for contact form
- Shopping cart/checkout
- SEO meta tags
- Centralized slug utility service