Welcome to my GitHub! I'm a developer who enjoys building dynamic web applications using the ASP.NET MVC framework.
Below are some of my featured projects that showcase both functionality and visual design.
A full‑stack ASP .NET Core MVC bookstore demo combining a playful front‑end with a robust admin console and complete shopping workflow. Key highlights include:
🧑💼User Experience
- Dynamic starry background via Particles.js with custom GIF branding
- Full‑width banner carousel for promotions (Stripe deals, new arrivals, editor’s picks)
- “Ways to save and explore books” icon carousel styled like Amazon with arrow controls
- Responsive product grid: six‑column layout, hover zoom/shadow, discount ribbons, and split‑screen ad banners every 12 items
- AJAX‑powered shopping cart badge and live cart count
- Product Details page with quantity selector, role‑based add‑to‑cart, and real‑time price tiers
🔧 Admin Console (Authenticated Roles)
- Category Management: DataTables-powered table with pagination, search, “Create New Category” button, inline Edit/Delete actions (modal dialogs + SweetAlert2 delete confirmations).
- Product Management: DataTables CRUD list with warnings for incomplete uploads, create/edit/delete controls, and SweetAlert2 confirmation. Create/Edit pages feature TinyMCE rich-text editor for descriptions, input fields for Title, ISBN, Author, List Price and tiered pricing, Category dropdown, Cover Image & multiple Product Images uploads with file‑upload validation.
- User Management & Registration: Admin portal “Register” page to create new accounts with email, name, contact, address fields, and role selection. User List table with Name, Email, Phone, Company, Role columns and Unlock/Permission actions.
- Order Management: Filterable order list with status tabs and API endpoints; Order Details view showing pickup info and order summary; buttons for Start Processing, Ship Order, Cancel Order; Stripe Checkout integration with delayed vs. immediate payment, plus refund processing and real-time status updates.
🔑 Under the Hood
- Architecture: ASP .NET Core MVC, Entity Framework Core, repository & service layer patterns
- Front‑end: Bootstrap 5, jQuery, DataTables, Particles.js, SweetAlert2, Toastr.js, TinyMCE, FontAwesome
- Authentication/Authorization: ASP .NET Identity roles, Google reCAPTCHA v3 on admin register
- Payments: Stripe Checkout Sessions with delayed vs. immediate capture
- Dependency Injection for clean code separation and testability
Below is the project folder organization for Kevin_MVC:
Kevin.sln
├─ Kevin.DataAccess
│ ├─ DAO
│ ├─ Data
│ └─ Migrations
├─ Kevin.Models
│ └─ Entities
├─ Kevin.Utility
├─ KevinWeb
│ ├─ Controllers
│ ├─ Services
│ ├─ Views
│ │ ├─ Cart
│ │ ├─ Category
│ │ ├─ Company
│ │ ├─ Home
│ │ ├─ Order
│ │ ├─ Product
│ │ └─ User
│ ├─ wwwroot
│ ├─ Program.cs
│ └─ appsettings.json
└─ README.md
All repository (DAO) and service layers are registered in Program.cs
:
// Data Access (DAO)
builder.Services.AddScoped<ICategoryDao, CategoryDao>();
builder.Services.AddScoped<IProductDao, ProductDao>();
builder.Services.AddScoped<ICompanyDao, CompanyDao>();
builder.Services.AddScoped<IShoppingCartDao, ShoppingCartDao>();
builder.Services.AddScoped<IApplicationUserDao, ApplicationUserDao>();
// Business Services
builder.Services.AddScoped<ICategoryService, CategoryService>();
builder.Services.AddScoped<IProductService, ProductService>();
builder.Services.AddScoped<ICompanyService, CompanyService>();
builder.Services.AddScoped<IShoppingCartService, ShoppingCartService>();
builder.Services.AddScoped<IApplicationUserService, ApplicationUserService>();
// Other Services
builder.Services.AddScoped<IEmailSender, EmailSender>();
All screenshots are pulled directly from the
Kevin_MVC
repo via raw URLs
Guest View | Logged‑in View | Product Details |
---|---|---|
Cart List | Cart Detail |
---|---|
List | Create | Edit |
---|---|---|
List | Edit 1 | Edit 2 | Delete | Quick Delete |
---|---|---|---|---|
List | Create | Edit | Delete |
---|---|---|---|
List | Add User | Create User |
---|---|---|
List | Update |
---|---|
A robust and production-style ASP.NET MVC eCommerce website, designed to handle real-world use cases like shopping, tracking, and category-based product browsing. Built with scalability in mind, this project covers the full shopping experience from category to checkout.
- Mobile accessories store with multilingual support
- Complete shopping cart and checkout system
- Category filters (Headphones, Chargers, Stands, etc.)
- Product grid layout with discount tags and slider UI
- Clean, modern UI with backend-ready structure
Database & Identity
- Default: Microsoft SQL Server via Entity Framework Core
- Easily swap to other providers (PostgreSQL, MySQL, Oracle, SQLite, IBM DB2)
- Auto‑seeded roles & users (Administrator, Moderator, User) via
eCommerceDbInitializer
Admin Dashboard
- Overview cards for Total Products, Categories, Orders, Comments, Users, and Roles
- Sidebar navigation: Dashboard, Categories, Products, Promos, Orders, Comments, Users, Roles, Newsletter, Languages, Configurations
- Real‑time role‑based data summary (Products, Users, Orders, etc.)
Category Management
- Hierarchical category structure with parent–child relationships
- Search/filter by Parent Category, DataTables list with inline Edit/Delete
- Admins can add/edit categories using modal or dedicated form
Product Management
- Searchable and paginated product table
- Admin CRUD: add/edit product name, description (TinyMCE), price tiers, category, tags, and multiple product images
- Stock quantity & low‑stock indicators supported
Order Management
- Filterable Orders list, each with a summary view
- Real‑time order tracking, support for Stripe delayed payment
- Admin actions: Process, Ship, Cancel, Refund
Localization & Language Switching
- UI for adding custom languages with short codes and icons
- Fully switchable UI (e.g. English ↔ Mandarin)
- Built-in support for RTL and locale expansion
Customer Experience
- Cart & Checkout process with address and contact form
- Profile section with editable avatar, change password, comment history, and order list
- Guest vs. Logged-in UI, multilingual switcher with flag dropdown
Below is the project folder organization for Kevin_MVC:
eCommerceMVC/
├── eCommerce.Data/ # Handles EF context and DB initialisation
│ ├── Migrations/ # EF migrations folder
│ ├── eCommerceContext.cs # Main DB context
│ └── eCommerceDBInitializer.cs # Seeds roles, admin users etc.
│
├── eCommerce.Entities/ # Defines all domain models (ORM-mapped)
│ ├── BaseEntity.cs # Base class for common entity properties
│ ├── Product.cs, Category.cs # Product-related models
│ ├── Order.cs, OrderItem.cs # Order and order item models
│ ├── eCommerceUser.cs # Extended Identity user model
│ ├── Language.cs, LanguageResource.cs # For localisation support
│ ├── Promo.cs, PromoTypes.cs # Promo and pricing types
│ └── [Others...] # Comments, Configurations, Newsletter, etc.
│
├── eCommerce.Services/ # Business logic layer (Service classes)
│ ├── OrdersService.cs
│ ├── ProductsService.cs
│ ├── LanguagesService.cs
│ ├── eCommerceUserManager.cs # Custom identity manager
│ └── [Others...] # Role mgmt, email, dashboard service, etc.
│
├── eCommerce.Shared/ # Shared utilities & helpers
│ ├── Attributes/ # Custom data annotations
│ ├── Enums/ # Enum definitions (OrderStatus, Roles etc.)
│ ├── Extensions/, Helpers/ # Common helper methods
│ └── Methods.cs
│
└── eCommerce.Web/ # MVC UI application
├── Areas/ # Separated areas (e.g., Admin area)
├── Controllers/ # CartController, ProductController etc.
├── ViewModels/ # Models passed to views
├── Views/
│ ├── Cart/, Orders/, Users/
│ ├── Categories/, Comments/
│ └── Shared/ # _Layout.cshtml, partials
├── App_Start/, Global.asax # Routing, bundles, filters
├── Content/ # CSS, JS, icons
└── Web.config, Startup.cs # Web app entry and DI config
The following NuGet packages are included in this project (packages.config
based - targeting .NET Framework 4.7.2 / 4.8):
-
Entity Framework & Identity
EntityFramework
v6.4.4
Microsoft.AspNet.Identity.Core
v2.2.3
Microsoft.AspNet.Identity.EntityFramework
v2.2.3
Microsoft.AspNet.Identity.Owin
v2.2.3
-
ASP.NET MVC & Web API
Microsoft.AspNet.Mvc
v5.2.9
Microsoft.AspNet.Razor
v3.2.9
Microsoft.AspNet.WebPages
v3.2.9
Microsoft.AspNet.WebApi.Core
v5.2.9
Microsoft.AspNet.WebApi.WebHost
v5.2.9
Microsoft.AspNet.WebApi.Owin
v5.2.9
Microsoft.AspNet.WebApi.Client
v5.2.9
Microsoft.AspNet.Web.Optimization
v1.1.3
-
OWIN & External Auth
Microsoft.Owin
v4.2.2
Microsoft.Owin.Host.SystemWeb
v4.2.2
Microsoft.Owin.Security.*
(Cookies, OAuth, Facebook, Google, Twitter, MicrosoftAccount)v4.2.2
Owin
v1.0
-
Other Core Libraries
Newtonsoft.Json
v13.0.2
System.Net.Http
v4.3.4
System.Memory
v4.5.5
System.Buffers
v4.5.1
System.Numerics.Vectors
v4.5.0
System.Text.Encoding.CodePages
v7.0.0
System.Runtime.CompilerServices.Unsafe
v6.0.0
-
Security & Cryptography
System.Security.Cryptography.Algorithms
v4.3.1
System.Security.Cryptography.Encoding
v4.3.0
System.Security.Cryptography.Primitives
v4.3.0
System.Security.Cryptography.X509Certificates
v4.3.2
-
Image & Web Tools
SixLabors.ImageSharp
v2.1.3
WebGrease
v1.6.0
Microsoft.Web.Infrastructure
v2.0.0
-
Others
AuthorizeNet
v2.0.3
– for payment gateway integrationAntlr
v3.5.0.2
– dependency for Razor or Web API parsing internalsMicrosoft.CodeDom.Providers.DotNetCompilerPlatform
v3.6.0
– C# compiler support for ASP.NET runtime
All screenshots use absolute GitHub paths with consistent formatting
Banner View | Carousel + Category | Product Grid |
---|---|---|
Product List | Product Detail | Add to Cart |
---|---|---|
Cart View | Checkout |
---|---|
User Dashboard | Order History |
---|---|
Change Language | Set Language Successfully |
---|---|
Dashboard | Overview |
---|---|
Order Tracking | Admin Order Control |
---|---|
Fake About Us | Refund Policy | Register |
---|---|---|
Thanks for stopping by! Feel free to explore my repositories or connect with me via the sidebar in my projects.