A robust e-commerce solution built with ASP.NET Core MVC, featuring a multi-role system, automated product approval workflows, and an AI-powered FAQ assistant integrated with Google Gemini.
- Role-Based Access Control (RBAC):
- Admin: Full control over products, categories, users, and reviews. Dashboard for system overview.
- Collaborator: Can propose new products. Proposals go through an approval workflow.
- Registered User: Can browse products, manage a wishlist, add items to cart, and place orders.
- AI FAQ Assistant: Integrated Gemini AI that answers user questions based on product descriptions and historical FAQ data.
- Product Proposal System: Collaborators submit products which remain in a "Pending" state until an Admin approves or rejects them.
- Order Management: Complete flow from shopping cart to order placement and history tracking.
- Reviews & Ratings: Users can leave feedback on products, which Admins can moderate.
| AI Assistant | Admin Dashboard |
|---|---|
![]() |
![]() |
| Context-Aware Support Answers product-specific questions & filters off-topic queries. |
Complete Management Track orders, manage users, and view real-time statistics. |
| Approval Workflow | Store Front |
|---|---|
![]() |
![]() |
| Collaborator System (RBAC) Admins review and approve/reject product proposals. |
Modern UX Clean, responsive interface for browsing and shopping. |
- Backend: .NET 9.0 (ASP.NET Core MVC)
- Database: SQL Server with Entity Framework Core
- AI Service: Google Gemini API (via
Google.GenerativeAISDK) - Identity: ASP.NET Core Identity (Roles: Admin, Colab, User)
- Frontend: Razor Views, Bootstrap 5, JavaScript
- .NET 9.0 SDK
- SQL Server or LocalDB
- A Google Gemini API Key (Get it from Google AI Studio)
-
Clone the repository:
git clone https://github.com/ModernityRejecter/Proiect-DAW.git cd Proiect-DAW -
Configure Environment Secrets: Open
appsettings.jsonand update the connection string and API key:{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=Proiect;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Gemini": { "ApiKey": "YOUR_GEMINI_API_KEY_HERE" } } -
Apply Migrations & Seed Data: The project uses an initializer to create roles and seed initial data (Admin, Categories, Products).
dotnet ef database update
-
Run the application:
dotnet run
Upon first run, the system creates the following accounts:
| Role | Password | |
|---|---|---|
| Admin | admin@test.com |
Admin1! |
| Collaborator | colab@test.com |
Colab1! |
| User | user@test.com |
User1! |
Controllers/: Logic for Cart, Orders, Product Proposals, and Admin panels.Models/: Database entities and ViewModels.Data/:ApplicationDbContextand Seed Data logic.Services/: ContainsGeminiService.csfor AI interaction.Views/: UI templates grouped by feature.
The GeminiService follows a strict logic for the FAQ system:
- Checks if a similar question was already answered in the FAQ History.
- Searches Product Info for relevant details.
- If no information is found, it returns "NU_STIU" to avoid hallucinations.
This project is open-source and available under the MIT License.



