{"id":30717998,"url":"https://github.com/01prathamesh/shopshakti","last_synced_at":"2026-05-07T13:16:15.432Z","repository":{"id":295370186,"uuid":"988124216","full_name":"01Prathamesh/ShopShakti","owner":"01Prathamesh","description":"ShopShakti: Modern, scalable full-stack e-commerce web app with Angular frontend, ASP.NET Core backend, JWT auth, and admin analytics.","archived":false,"fork":false,"pushed_at":"2025-08-21T10:11:41.000Z","size":1209,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-21T12:25:35.016Z","etag":null,"topics":["angular","asp-net-core-web-api","ms-sql-server"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/01Prathamesh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-22T05:04:34.000Z","updated_at":"2025-08-21T10:11:44.000Z","dependencies_parsed_at":"2025-08-21T12:08:17.349Z","dependency_job_id":"a78681ef-83ff-4cda-988a-f95ead5a449d","html_url":"https://github.com/01Prathamesh/ShopShakti","commit_stats":null,"previous_names":["01prathamesh/shopshakti"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/01Prathamesh/ShopShakti","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01Prathamesh%2FShopShakti","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01Prathamesh%2FShopShakti/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01Prathamesh%2FShopShakti/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01Prathamesh%2FShopShakti/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/01Prathamesh","download_url":"https://codeload.github.com/01Prathamesh/ShopShakti/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01Prathamesh%2FShopShakti/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273417354,"owners_count":25101820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","asp-net-core-web-api","ms-sql-server"],"created_at":"2025-09-03T09:03:13.384Z","updated_at":"2026-05-07T13:16:15.390Z","avatar_url":"https://github.com/01Prathamesh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛍️ ShopShakti (Full-Stack E-Commerce Platform)\n\n\n![GitHub issues](https://img.shields.io/github/issues/01Prathamesh/ShopShakti) \u0026nbsp;\u0026nbsp;\u0026nbsp;\n![GitHub license](https://img.shields.io/github/license/01Prathamesh/ShopShakti) \u0026nbsp;\u0026nbsp;\u0026nbsp;\n![GitHub stars](https://img.shields.io/github/stars/01Prathamesh/ShopShakti) \u0026nbsp;\u0026nbsp;\u0026nbsp;\n![GitHub forks](https://img.shields.io/github/forks/01Prathamesh/ShopShakti) \u0026nbsp;\u0026nbsp;\u0026nbsp;\n![GitHub last commit](https://img.shields.io/github/last-commit/01Prathamesh/ShopShakti)\n\n\n## 📌 Status: Active Development — Stable Core Features\n\nWelcome to the **ShopShakti** project — a modern, full-stack, responsive e-commerce web application built using **Angular (frontend)** and **ASP.NET Core Web API (backend)**. It features a clean, scalable architecture and is designed for performance, maintainability, and an excellent user experience.\n\n## 📽️ **Project Demo**\n\nCheck out the live walkthrough of **ShopShakti** on YouTube:  \n[![ShopShakti Demo](https://img.youtube.com/vi/rlYTUn8ONFk/0.jpg)](https://youtu.be/rlYTUn8ONFk?si=KnZtb-_hHt2Op6vs)\n\n🔗 Watch here: [https://youtu.be/rlYTUn8ONFk?si=KnZtb-_hHt2Op6vs](https://youtu.be/rlYTUn8ONFk?si=KnZtb-_hHt2Op6vs)\n\n\u003e 🚧 *Note: This project is a work in progress, but it’s stable enough to demonstrate core features and user flows.*\n\n## 🚀 Frontend Features (Angular)\n\n- 🏠 **Homepage** with hero banners, trending, deals, and featured categories\n- 🛒 **Product Listing \u0026 Detail Pages** with filtering, dynamic routing\n- 👤 **Authentication**: Register, Login, Profile management\n- 🧺 **Cart System** with quantity control and persistence\n- 💳 **Checkout** flow with order summary and confirmation\n- 📦 **Order Management** for both users and admin\n- 🧑‍💼 **Admin Dashboard** with analytics and protected routes\n- 🍞 **Toast Notifications** for seamless feedback\n- 📱 **Fully Responsive**: Optimized for desktop, tablet, and mobile\n\n## 🧱 Frontend Structure\n```\nShopShakti_frontend/\n├── src/\n│ ├── app/\n│ │ ├── components/\n│ │ │ ├── admin/\n│ │ │ │ ├── admin-dashboard/\n│ │ │ │ ├── order-management/\n│ │ │ │ ├── product-management/\n│ │ │ │ └── user-management/\n│ │ │ ├── auth_user_pages/\n│ │ │ │ ├── login/\n│ │ │ │ ├── register/\n│ │ │ │ └── profile/\n│ │ │ ├── core_pages/\n│ │ │ │ ├── homepage/\n│ │ │ │ ├── product-list/\n│ │ │ │ ├── product-detail/\n│ │ │ │ └── cart/\n│ │ │ ├── orders/\n│ │ │ │ ├── order-list/\n│ │ │ │ ├── order-summary/\n│ │ │ │ └── order-success/\n│ │ │ ├── staff/\n│ │ │ │ ├── staff-dashboard/                         \n│ │ │ │ ├── manage-trending-products/               \n│ │ │ │ ├── manage-benefits/                        \n│ │ │ │ ├── manage-top-deals/                       \n│ │ │ │ ├── manage-customer-reviews/                \n│ │ │ │ ├── manage-featured-categories/             \n│ │ │ │ └── manage-newsletter-subscription/\n│ │ │ ├── home/\n│ │ │ │ ├── trending-products/\n│ │ │ │ ├── featured-categories/\n│ │ │ │ ├── top-deals/\n│ │ │ │ ├── benefits/\n│ │ │ │ ├── customer-reviews/\n│ │ │ │ └── newsletter-subscription/\n│ │ │ └── ui_ux/\n│ │ │   ├── navbar/\n│ │ │   ├── admin-button/\n│ │ │   ├── cart-button/\n│ │ │   ├── footer/\n│ │ │   ├── searchbar/\n│ │ │   ├── category-sidebar/\n│ │ │   ├── banner-carousel/\n│ │ │   └── toast/\n| | ├── models/\n| | └── services/\n│ ├── assets/\n│ │ └── images/\n│ │   ├── banners/\n| |   ├── company/\n│ │   ├── categories/\n│ │   ├── deals/\n│ │   └── products/\n│ └── index.html\n```\n\n## 🛠️ Tech Stack (Frontend)\n\n- **Angular 19** with standalone component architecture\n- **TypeScript**\n- **Angular Router** for route management and guards\n- **Material Icons**, **FontAwesome** for UI elements\n\n## 🔒 Admin Access\n\nAdmin routes are protected using an `AuthService` and `canActivateAdmin` guard. Only users with role `admin` can access the dashboard.\n\n```ts\nif (auth.isLoggedIn() \u0026\u0026 auth.isAdmin()) {\n  return true;\n}\n```\n\n## 📦 Run Frontend Locally\n```\n# Install dependencies\nnpm install\n\n# Run dev server\nng serve\n```\nAccess the app at: http://localhost:4200\n\n## 🔧 Backend Overview (ASP.NET Core)\n\nThe backend is a RESTful API built with **ASP.NET Core Web API**, using **Entity Framework Core** for data persistence and **SQL Server** as the database.\n\n## 🧱 Backend Structure\n```\nShopShakti_backend/\n├── Properties/\n|    └── launchSettings.cs/\n├── Controllers/\n│   ├── AdminController.cs\n│   ├── CartItemsController.cs\n│   ├── OrdersController.cs\n│   ├── ProductsController.cs\n│   └── UsersController.cs\n├── Data/\n│   ├── AppContextDb.cs\n│   └── AppDbContextFactory.cs\n├── Models/\n│   ├── CartItem.cs\n│   ├── Order.cs\n│   ├── Product.cs\n│   ├── User.cs\n│   ├── AdminMetricsDto.cs\n│   └── LoginDto.cs\n├── Migrations/\n├── Program.cs\n├── appsettings.json\n└── ShopShakti_backend.csproj\n\n```\n\n## 🧰 Tech Stack (Backend)\n\n- **ASP.NET Core 7 Web API**\n\n- **Entity Framework Core**\n\n- **SQL Server / SQLite**\n\n- **CORS Configuration for frontend integration**\n\n- **Swagger (OpenAPI 3.0) for documentation**\n\n## 📘 API Endpoints\n\n**🛒 CartItems**\n\n`GET /api/CartItems`\n\n`GET /api/CartItems/{id}`\n\n`POST /api/CartItems`\n\n`PUT /api/CartItems/{id}`\n\n`DELETE /api/CartItems/{id}`\n\n**📦 Orders**\n\n`GET /api/Orders`\n\n`GET /api/Orders/{id}`\n\n`POST /api/Orders`\n\n`PUT /api/Orders/{id}`\n\n`DELETE /api/Orders/{id}`\n\n**🛍️ Products**\n\n`GET /api/Products`\n\n`GET /api/Products/{id}`\n\n`POST /api/Products`\n\n`PUT /api/Products/{id}`\n\n`DELETE /api/Products/{id}`\n\n**👤 Users**\n\n`GET /api/Users`\n\n`GET /api/Users/{id}`\n\n`POST /api/Users`\n\n`PUT /api/Users/{id}`\n\n`DELETE /api/Users/{id}`\n\n`POST /api/Users/login`\n\n**📊 Admin Metrics**\n\n`GET /api/Admin/metrics`\n\n## 📄 Schemas Used\n- `Product`\n\n- `CartItem`\n\n- `Order`\n\n- `User`\n\n- `LoginRequest`\n\n- `AdminMetricsDto`\n\n## 🧪 Run Backend Locally\n```\n# Navigate to backend folder\ncd ShopShakti_backend\n\n# Restore NuGet packages\ndotnet restore\n\n# Update database (if using migrations)\ndotnet ef database update\n\n# Start the server\ndotnet run\n```\nAPI Base URL: https://localhost:7171/api\n\nSwagger: https://localhost:7171/swagger\n\n## 🔐 Security Architecture\n\nShopShakti is designed with a strong focus on secure authentication, data protection, and access control. Below are the key security features implemented:\n\n### ✅ Authentication \u0026 Authorization\n- **JWT-based Authentication**  \n  Secure login with JSON Web Tokens (JWT), including issuer, audience, and HMAC SHA256 signing.\n- **Token Expiration \u0026 Validation**  \n  Tokens expire based on a configurable time (`ExpiresInMinutes`), enforced using `ValidateLifetime` and `ClockSkew = 0`.\n- **Role-Based Access Control**  \n  Admin and user routes are guarded using Angular route guards (`canActivateAdmin`, `canActivateUser`).\n- **Password Hashing**  \n  User passwords are securely hashed using ASP.NET Core’s `PasswordHasher\u003cT\u003e` before being saved to the database.\n\n### ✅ API \u0026 Backend Security\n- **[Authorize] Decorators**  \n  Sensitive API endpoints (e.g. profile, orders, cart) are protected using `[Authorize]`, while public routes like registration and login use `[AllowAnonymous]`.\n- **CORS Policy Enforcement**  \n  Backend is configured to allow only trusted frontend origins (e.g., `http://localhost:4200`).\n- **Blocked User Handling**  \n  Blocked users are denied access during login and receive a `403 Forbidden` response.\n\n### ✅ Frontend Safeguards\n- **JWT Interceptor**  \n  Angular HTTP interceptor automatically attaches `Authorization: Bearer \u003ctoken\u003e` to every protected API request.\n- **Secure Token Storage**  \n  JWT and user info (excluding password) are stored safely in `localStorage`. Passwords are never exposed to the client.\n- **Route Guards**  \n  Angular guards restrict access to protected routes like `/profile`, `/cart`, `/checkout`, and `/admin`.\n\n\u003e ✅ All critical flows (login, logout, registration, token validation, admin access, and blocked user control) have been implemented securely and verified.  \nThis setup follows modern best practices for Angular + ASP.NET Core Web API + SQL Server applications.\n\n\n## ✅ Future Enhancements\n\n- Wishlist \u0026 Payment gateway\n\n- Advanced search, filters, and pagination\n\n- Product ratings and reviews\n\n- Order tracking \u0026 invoice downloads\n\n## 🤝 Contribution\n\nPull requests and suggestions are welcome! Please fork the repository and submit a PR with clear and descriptive commit messages.\n\n## 📄 License\n\nThis project is licensed under the **MIT License**.  \nYou are free to use, modify, and distribute this software with attribution.  \nSee the [LICENSE](./LICENSE) file for full details.\n\n\n## 👨‍💻 Developer Note\nThis project has been thoughtfully crafted as a full-stack e-commerce solution with a strong emphasis on clean architecture, intuitive UI/UX, and scalable design. Every component—from frontend interactions to backend logic—has been built with attention to performance, maintainability, and modern best practices.\n\n## 🧑‍🎓 Developed \u0026 Maintained by:\n\n***Prathamesh Kasar*** \n\u003cbr\u003e\n`© 2025 Prathamesh Kasar. All rights reserved.`\n\u003cbr\u003e\nPlease do not reproduce without proper attribution.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F01prathamesh%2Fshopshakti","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F01prathamesh%2Fshopshakti","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F01prathamesh%2Fshopshakti/lists"}