feat: Add Ikkulath Fashions - Full-Stack Fashion Store Management App#71
Open
devin-ai-integration[bot] wants to merge 3 commits intomasterfrom
Open
feat: Add Ikkulath Fashions - Full-Stack Fashion Store Management App#71devin-ai-integration[bot] wants to merge 3 commits intomasterfrom
devin-ai-integration[bot] wants to merge 3 commits intomasterfrom
Conversation
- .NET Core 8 Web API with Repository Pattern and Dapper ORM - Angular 21 frontend with Bootstrap 5 - SQLite database with auto-initialization and seed data - JWT authentication with BCrypt password hashing - 8 modules: User Login, Sales, Sales Return, Purchase, Purchase Return, Stock, Employee Salary, Billing - CORS configured for Angular frontend - Swagger/OpenAPI documentation with JWT support - Automatic stock movement tracking on sales/purchases - Transaction handling for multi-item operations
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
…match - Added zone.js import and provideZoneChangeDetection for proper observable change detection - Fixed Employee Salary form: month/year sent as integers to match backend DTO - Changed month input from date picker to select dropdown (1-12) - Added separate year input field - All Number() conversions for payload construction
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a complete full-stack retail/fashion store management application ("Ikkulath Fashions") under the
IkkulathFashions/directory, consisting of:Backend (
IkkulathFashions/API/) — .NET Core 8 Web API:Frontend (
IkkulathFashions/UI/) — Angular 21 with Bootstrap 5:Updates since last revision
HttpClient) to render API data. Without zone.js, HTTP callbacks did not trigger change detection, causing all components to appear empty despite successful API calls. Addedimport 'zone.js'tomain.tsandprovideZoneChangeDetection({ eventCoalescing: true })toapp.config.ts.monthas a date string (e.g."2026-03") via<input type="month">, but the backendCreateSalaryRequestDTO expectsmonthasint(1–12) andyearas a separateint. Changed the month input to a<select>dropdown (1–12), added a separate year<input type="number">, and ensured all payload fields are sent asNumber().sellingPrice/costPricebut the API returnsunitPrice. Updated Sales, Sales Return, Purchase, and Purchase Return components.Number()conversions for all IDs sent from<select>elements to the API.Local Testing Performed
All 8 modules were manually tested end-to-end with both backend and frontend running locally:
admin/admin123Review & Testing Checklist for Human
Program.cshas no exception-handling middleware. Submitting empty forms sendsNaNor zero IDs to the API — verify the backend doesn't crash or corrupt data on malformed input (e.g. submit a sale with no customer selected).SaleRepository,PurchaseRepository,StockRepository, andBillRepositoryuse transactions for multi-item inserts and stock updates. These were exercised during manual testing but not with edge cases (e.g. concurrent writes, rollback on partial failure). Verify schema inDatabaseInitializer.csmatches column names in all repository queries.₹0.00for the created return despite the item having a unit price of ₹1,500. This may be a bug in the total calculation or in how the API returns the amount — investigatePurchaseReturnRepositoryand the frontend display logic.appsettings.json: The keyIkkulathFashionsSecretKey2024SuperSecure!@#$%is committed. Acceptable for demo; flag if this repo is used beyond demos.Recommended test plan: Run the .NET API (
dotnet run --urls "http://localhost:5000"inIkkulathFashions/API/) and Angular dev server (ng serveinIkkulathFashions/UI/). Log in withadmin/admin123. Create a sale with multiple items → verify stock decrements in Stock module → create a return → verify stock increments back → process a salary → generate a bill from the sale → view and print the bill. Specifically test submitting forms with empty/unselected dropdowns to check error handling.Notes
environment.prod.tsstill points tohttp://localhost:5000/api— update for any non-local deployment.anytypes extensively — this is how thesellingPrice/costPriceand salary DTO mismatches originally went undetected. Consider adding typed interfaces matching backend DTOs if this grows.Link to Devin session: https://partner-workshops.devinenterprise.com/sessions/50a545476248400cae74cd00f219ce43