{"id":26571844,"url":"https://github.com/floyden-monteiro/spinmart","last_synced_at":"2026-05-06T12:32:46.730Z","repository":{"id":281988725,"uuid":"946614135","full_name":"Floyden-Monteiro/SpinMart","owner":"Floyden-Monteiro","description":"RetailShop E-Commerce API A .NET Core 8.0 e-commerce backend API built with clean architecture principles. The project handles product management, order processing, and customer data using PostgreSQL for persistence. ","archived":false,"fork":false,"pushed_at":"2025-03-12T07:00:41.000Z","size":1525,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T08:19:09.477Z","etag":null,"topics":["asp-net-core","asp-net-mvc","automapper-profiles","efcore","enityframework","orm","rdbms-persistance","specification-pattern"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Floyden-Monteiro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-03-11T12:14:59.000Z","updated_at":"2025-03-12T07:00:47.000Z","dependencies_parsed_at":"2025-03-12T08:29:13.947Z","dependency_job_id":null,"html_url":"https://github.com/Floyden-Monteiro/SpinMart","commit_stats":null,"previous_names":["floyden-monteiro/spinmart"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Floyden-Monteiro%2FSpinMart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Floyden-Monteiro%2FSpinMart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Floyden-Monteiro%2FSpinMart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Floyden-Monteiro%2FSpinMart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Floyden-Monteiro","download_url":"https://codeload.github.com/Floyden-Monteiro/SpinMart/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245031514,"owners_count":20549926,"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","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":["asp-net-core","asp-net-mvc","automapper-profiles","efcore","enityframework","orm","rdbms-persistance","specification-pattern"],"created_at":"2025-03-22T23:16:47.589Z","updated_at":"2026-05-06T12:32:46.686Z","avatar_url":"https://github.com/Floyden-Monteiro.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RetailShop E-Commerce API\n\n## Overview\n\nA modern, feature-rich e-commerce backend built with .NET Core 8.0, implementing clean architecture principles. This API provides comprehensive endpoints for product management, order processing, payment handling, and customer management, using PostgreSQL for data persistence.\n\n## Table of Contents\n\n- [Features](#features)\n- [Architecture](#architecture)\n- [Tech Stack](#tech-stack)\n- [Getting Started](#getting-started)\n- [API Documentation](#api-documentation)\n- [Contributing](#contributing)\n\n## Features\n\n### 🛍️ Product Management\n\n- ✅ CRUD operations for products\n- ✅ Product categorization and filtering\n- ✅ Brand management\n- ✅ Price and inventory tracking\n\n### 📦 Order System\n\n- ✅ Order creation and management\n- ✅ Order status tracking\n- ✅ Multiple payment methods\n- ✅ Order history\n\n### 💳 Payment Processing\n\n- ✅ Secure payment handling\n- ✅ Multiple payment methods (Credit Card, PayPal, etc.)\n- ✅ Payment status tracking\n- ✅ Transaction history\n\n### 👥 Customer Management\n\n- ✅ Customer profiles\n- ✅ Order history\n- ✅ Address management\n\n### 📊 Inventory Management\n\n- ✅ Stock level tracking\n- ✅ Low stock alerts\n- ✅ Stock updates\n- ✅ Stock availability checks\n\n## Architecture\n\n### Project Structure\n\n```\nRetailShop/\n├── API/                  # Web API Layer\n│   ├── Controllers/      # API endpoints\n│   ├── DTOs/            # Data transfer objects\n│   ├── Helpers/         # Utility classes\n│   └── Middleware/      # Custom middleware\n├── Core/                # Domain Layer\n│   ├── Entities/        # Domain models\n│   ├── Interfaces/      # Core abstractions\n│   ├── Services/        # Domain services\n│   └── Specifications/  # Query specifications\n└── Infrastructure/      # Data Layer\n    ├── Data/           # Database context\n    ├── Repositories/   # Data access\n    └── Services/       # External services\n```\n\n### Design Patterns \u0026 Principles\n\n- 🏛️ Clean Architecture\n- 📚 Repository Pattern\n- 🔍 Specification Pattern\n- ✨ SOLID Principles\n- 🔄 DRY (Don't Repeat Yourself)\n\n### Diagrams\n\n#### Entity Relationship\n\n![Entity Relationship Diagram](Documentation/Entity.png)\n_Database schema showing relationships between core entities_\n\n#### Application Flow\n\n![Application Flow](Documentation/flow.png)\n_High-level overview of the application's data flow_\n\n#### Sequence Flow\n\n![Sequence Diagram](Documentation/sequence.png)\n_Request/response flow for key operations_\n\n## Tech Stack\n\n- ⚡ .NET Core 8.0\n- 🗄️ Entity Framework Core 8.0\n- 🐘 PostgreSQL\n- 🔄 AutoMapper\n- 📚 Swagger/OpenAPI\n\n## Getting Started\n\n### Prerequisites\n\n- .NET Core SDK 8.0\n- PostgreSQL\n- Visual Studio Code or Visual Studio 2022\n\n### Setup Steps\n\n1. **Clone Repository**\n\n```powershell\ngit clone https://github.com/Floyden-Monteiro/RetailShop.git\ncd RetailShop\n```\n\n2. **Configure Database**\n\n```json\n{\n  \"ConnectionStrings\": {\n    \"DefaultConnection\": \"Host=localhost;Database=retailshop;Username=your_username;Password=your_password\"\n  }\n}\n```\n\n3. **Run Migrations**\n\n```powershell\ndotnet ef database update -p Infrastructure -s API\n```\n\n4. **Start Application**\n\n```powershell\ncd API\ndotnet run\n```\n\n## API Documentation\n\n### 🛍️ Products\n\n- `GET /api/products` - List all products\n- `GET /api/products/{id}` - Get product details\n- `POST /api/products` - Create product\n- `PUT /api/products/{id}` - Update product\n- `DELETE /api/products/{id}` - Delete product\n\n### 📦 Orders\n\n- `GET /api/orders` - List all orders\n- `GET /api/orders/{id}` - Get order details\n- `POST /api/orders` - Create order\n- `PUT /api/orders/{id}/status` - Update status\n\n### 💳 Payments\n\n- `GET /api/payments` - List all payments\n- `GET /api/payments/{id}` - Get payment details\n- `POST /api/payments` - Process payment\n- `GET /api/payments/order/{orderId}` - Get order payment\n\n### 👥 Customers\n\n- `GET /api/customers` - List all customers\n- `GET /api/customers/{id}` - Get customer details\n- `POST /api/customers` - Create customer\n- `PUT /api/customers/{id}` - Update customer\n\n### 📊 Inventory\n\n- `GET /api/inventory/low-stock` - Check low stock\n- `PUT /api/inventory/update-stock/{id}` - Update stock\n- `GET /api/inventory/check-stock/{id}` - Check availability\n\n#### Example Requests\n\n**Check Low Stock**\n\n```http\nGET /api/inventory/low-stock?threshold=5\n```\n\n**Update Stock**\n\n```http\nPUT /api/inventory/update-stock/1\nContent-Type: application/json\n\n{\n    \"quantity\": 100\n}\n```\n\n**Check Availability**\n\n```http\nGET /api/inventory/check-stock/1?quantity=5\n```\n\n## Contributing\n\n1. Fork repository\n2. Create feature branch (`git checkout -b feature/NewFeature`)\n3. Commit changes (`git commit -m 'Add NewFeature'`)\n4. Push to branch (`git push origin feature/NewFeature`)\n5. Open Pull Request\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffloyden-monteiro%2Fspinmart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffloyden-monteiro%2Fspinmart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffloyden-monteiro%2Fspinmart/lists"}