{"id":31381639,"url":"https://github.com/quangxuan98765/data-processing-api","last_synced_at":"2026-05-08T09:34:50.531Z","repository":{"id":306578355,"uuid":"1026642662","full_name":"quangxuan98765/data-processing-api","owner":"quangxuan98765","description":"ASP.NET Core Web API for Excel Data Processing \u0026 Bulk Database Operations","archived":false,"fork":false,"pushed_at":"2025-09-17T08:42:54.000Z","size":5430,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-06T15:40:25.891Z","etag":null,"topics":["aspnet-core","bulk-insert","demo-project","dotnet-core","excel-processing","power-automate","sql-server","web-api"],"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/quangxuan98765.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-26T09:58:32.000Z","updated_at":"2025-09-17T08:42:58.000Z","dependencies_parsed_at":"2025-07-26T16:29:57.078Z","dependency_job_id":"df133ea0-e136-4cc6-9b64-e5f196f1b1fc","html_url":"https://github.com/quangxuan98765/data-processing-api","commit_stats":null,"previous_names":["quangxuan98765/excel-data-processing-api","quangxuan98765/data-processing-api"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/quangxuan98765/data-processing-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quangxuan98765%2Fdata-processing-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quangxuan98765%2Fdata-processing-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quangxuan98765%2Fdata-processing-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quangxuan98765%2Fdata-processing-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quangxuan98765","download_url":"https://codeload.github.com/quangxuan98765/data-processing-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quangxuan98765%2Fdata-processing-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32775084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["aspnet-core","bulk-insert","demo-project","dotnet-core","excel-processing","power-automate","sql-server","web-api"],"created_at":"2025-09-28T10:39:25.711Z","updated_at":"2026-05-08T09:34:50.515Z","avatar_url":"https://github.com/quangxuan98765.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏢 DataProcessingAPI - Enterprise Business Management System\n\n\u003e **Enterprise .NET 8 Web API with JWT Authentication \u0026 Power Platform Integration**\n\n## 🚀 Overview\n\nDataProcessingAPI is an enterprise-grade .NET 8 Web API built with Clean Architecture principles for comprehensive business data management. Features JWT authentication, reusable authentication library, and dual API architecture for enterprise scalability.\n\n### ✨ Key Features\n\n- 🔐 **JWT Authentication** - Secure token-based authentication with BCrypt password hashing\n- 📚 **Reusable AuthLibrary** - Standalone authentication library for code reuse\n- 🏗️ **Enterprise Architecture** - Separate Auth \u0026 Financial API documentation\n- 💰 **Financial Management** - Secure revenue and expense tracking with authorization\n- 🔄 **CRUD Operations** - Complete data management with proper security\n- 📊 **Excel Integration** - Bulk import/export with Power Automate\n- ✅ **Data Validation** - Multi-layer validation with business rules\n- 🛡️ **Security** - JWT tokens, [Authorize] attributes, SQL injection protection\n- 🔗 **Power Platform** - Custom Connectors for Power Apps and Power Automate\n- 📈 **Scalable** - Modular design for easy domain extensions\n\n## 🛠️ Technology Stack\n\n- **.NET 8** - Latest LTS framework\n- **ASP.NET Core** - Web API with dual Swagger documentation\n- **SQL Server** - Database with stored procedures\n- **JWT Authentication** - Secure token-based auth with BCrypt\n- **AuthLibrary** - Reusable authentication components\n- **Clean Architecture** - Domain-driven design pattern\n- **Dependency Injection** - Built-in .NET Core DI\n- **Power Platform** - Custom Connectors for enterprise integration\n\n## 🏗️ Project Structure\n\n```\nDataProcessingAPI/\n├── AuthLibrary/              # Reusable JWT + BCrypt authentication library\n│   ├── Models/               # User, token models\n│   ├── DTOs/                 # Request/response DTOs\n│   ├── Services/             # Auth, password, token services\n│   ├── Interfaces/           # Service contracts\n│   └── SQL/                  # Database stored procedures\n├── DataAccess/               # Database service layer\n├── DataProcessingAPI/        # Main API project\n│   ├── Controllers/\n│   │   ├── Auth/             # Authentication endpoints\n│   │   └── Financial/        # Financial management (protected)\n│   ├── Application/          # Business logic\n│   ├── Domain/               # Domain entities\n│   └── Shared/               # Common utilities\n└── publish/                  # IIS deployment artifacts\n```\n\n## 🎯 API Architecture\n\n### 🔐 Authentication API (Auth Group)\n- **POST /api/auth/login** - User authentication with JWT token\n- **POST /api/auth/register** - New user registration\n- **POST /api/auth/logout** - Token revocation\n- **POST /api/auth/change-password** - Secure password updates\n- **GET /api/auth/profile** - Get user profile\n\n### 💰 Financial API (Financial Group) - 🔒 JWT Protected\n\n#### Revenue Management\n- **GET /api/revenue** - Get all revenue records\n- **GET /api/revenue/{id}** - Get specific revenue by ID\n- **POST /api/revenue** - Create new revenue record\n- **PUT /api/revenue/{id}** - Update existing revenue\n- **DELETE /api/revenue/{id}** - Delete revenue record\n- **POST /api/revenue/bulk-import** - Excel bulk import with validation\n\n#### Expense Management  \n- **GET /api/expense** - Get all expense records\n- **GET /api/expense/{id}** - Get specific expense by ID\n- **POST /api/expense** - Create new expense record\n- **PUT /api/expense/{id}** - Update existing expense\n- **DELETE /api/expense/{id}** - Delete expense record\n- **POST /api/expense/bulk-import** - Excel bulk import with validation\n\n### 🚀 Future Extensions\n- **HR Management** - Employee and payroll systems\n- **Inventory** - Stock and product management\n- **Accounting** - Ledger and financial reporting\n\n## 🚀 Quick Start\n\n```bash\n# Clone repository\ngit clone https://github.com/quangxuan98765/excel-data-processing-api\n\n# Navigate to project\ncd DataProcessingAPI\n\n# Setup database (run SQL scripts)\n# 1. Run AuthLibrary/SQL/AuthStoredProcedures.sql\n# 2. Configure connection string in appsettings.json\n\n# Configure JWT settings in appsettings.json\n{\n  \"JwtSettings\": {\n    \"SecretKey\": \"YourSecretKey32CharactersMinimum!\",\n    \"Issuer\": \"DataProcessingAPI\",\n    \"Audience\": \"DataProcessingAPI\",\n    \"ExpiryMinutes\": 60\n  }\n}\n\n# Run the API\ndotnet run\n```\n\n**Swagger Documentation**:\n- **Auth API**: `https://localhost:7xxx/swagger-auth` \n- **Financial API**: `https://localhost:7xxx/swagger-financial`\n\n## 🔐 Authentication Flow\n\n1. **Register/Login** → Get JWT token\n2. **Include token** in Authorization header: `Bearer \u003ctoken\u003e`\n3. **Access protected endpoints** (Financial APIs require authentication)\n\n```http\n# Login\nPOST /api/auth/login\n{ \"username\": \"admin\", \"password\": \"Password123!\" }\n\n# Use token for protected endpoints\nGET /api/expense\nAuthorization: Bearer \u003cyour-jwt-token\u003e\n```\n\n## 📊 Enterprise DTOs \u0026 Clean Architecture\n\n### Request/Response Pattern\n```csharp\n// API Request DTOs (Client → Server)\nCreateRevenueRequest    // POST /api/revenue\nUpdateRevenueRequest    // PUT /api/revenue/{id}\nCreateExpenseRequest    // POST /api/expense  \nUpdateExpenseRequest    // PUT /api/expense/{id}\n\n// API Response DTOs (Server → Client)\nRevenueResponse        // GET operations\nExpenseResponse        // GET operations\n\n// Import DTOs (Excel → API)\nRevenueImportDto       // Bulk import from Excel\nExpenseImportDto       // Bulk import from Excel\n```\n\n### Benefits\n- ✅ **Security**: Request DTOs prevent ID/timestamp manipulation\n- ✅ **Validation**: Separate validation rules for create vs update\n- ✅ **Documentation**: Clear API contracts in Swagger\n- ✅ **Maintainability**: Easy to extend without breaking changes\n\n## 📊 API Endpoints\n\n### Authentication Endpoints\n```\nPOST /api/auth/login                        # User login with JWT token\nPOST /api/auth/register                     # New user registration  \nPOST /api/auth/logout                       # Token revocation\nPOST /api/auth/change-password              # Password updates\nGET  /api/auth/profile                      # Get user profile\n```\n\n### Financial Endpoints (🔒 JWT Required)\n```\n# Revenue Management\nGET    /api/revenue                         # Get all revenue records\nGET    /api/revenue/{id}                    # Get revenue by ID\nPOST   /api/revenue                         # Create new revenue\nPUT    /api/revenue/{id}                    # Update revenue\nDELETE /api/revenue/{id}                    # Delete revenue\nPOST   /api/revenue/bulk-import             # Excel bulk import\n\n# Expense Management  \nGET    /api/expense                         # Get all expense records\nGET    /api/expense/{id}                    # Get expense by ID\nPOST   /api/expense                         # Create new expense\nPUT    /api/expense/{id}                    # Update expense\nDELETE /api/expense/{id}                    # Delete expense\nPOST   /api/expense/bulk-import             # Excel bulk import\n```\n\n## 🔗 Power Platform Integration\n\n### Custom Connectors\n- **Financial Data API Connector** - Complete CRUD operations with JWT authentication\n- **Swagger-based Definition** - Auto-generated from API documentation\n- **Request/Response DTOs** - Clean API contracts for Power Platform\n\n### Power Apps Integration\n- **JWT Authentication Flow** - Secure login with token management\n- **Financial Data Management** - Full CRUD operations with proper authorization\n- **Form Validation** - Client-side + server-side validation\n- **Data Binding** - Clean Response DTOs for easy Power Apps binding\n\n### Power Automate Flows\n- **Excel Data Import** - Bulk processing with validation and error handling\n- **Automated Workflows** - Scheduled data processing and reporting\n- **Error Handling** - Comprehensive error logging and retry mechanisms\n\n### Integration Benefits\n- ✅ **Type Safety** - Strongly typed Request/Response DTOs\n- ✅ **Error Handling** - Structured error responses\n- ✅ **Security** - JWT authentication for all protected endpoints  \n- ✅ **Scalability** - Enterprise-grade API design patterns\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## 📞 Contact\n\n**Developer**: Quang Xuân  \n**Email**: acongchuongheo@gmail.com  \n**GitHub**: [@quangxuan98765](https://github.com/quangxuan98765)\n\n---\n\n⭐ **Professional .NET development with Clean Architecture principles**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquangxuan98765%2Fdata-processing-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquangxuan98765%2Fdata-processing-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquangxuan98765%2Fdata-processing-api/lists"}