A Service-Oriented Architecture (SOA) e-commerce platform for gadgets. The system connects to three distributors - ElectroCom, TechWorld, and GadgetCentral - and automatically compares prices to get the best deal for customers.
- Compare prices across three distributor APIs
- Customer storefront with cart, wishlist, and checkout
- Admin dashboard for orders, products, and customers
- Quotation-based order processing
| Layer | Technology |
|---|---|
| Backend | ASP.NET Core Web API (.NET 8) |
| Frontend | ASP.NET Core Razor Pages (.NET 8) |
| Database | SQL Server + Entity Framework Core |
| Service | Description |
|---|---|
| GadgetHubWeb | Customer-facing web app |
| GadgetHubAPI | Main API - orders, customers, quotation comparison |
| ElectroComAPI | Distributor API |
| TechWorldAPI | Distributor API |
| GadgetCentralAPI | Distributor API |
- .NET 8 SDK
- SQL Server (LocalDB, Express, or full)
- Database backups/scripts in
Database/(local only)
- Restore the databases from
Database/into SQL Server. - Update connection strings in each project's
appsettings.json. - Start all five services (separate terminals):
dotnet run --project GadgetHubAPI
dotnet run --project ElectroComAPI
dotnet run --project TechWorldAPI
dotnet run --project GadgetCentralAPI
dotnet run --project GadgetHubWeb- Open the web app URL shown in the
GadgetHubWebconsole (typicallyhttps://localhost:7xxx).
| Role | Password | |
|---|---|---|
| Admin | admin@gadgethub.com | admin123 |
| User | user1@gmail.com | user123 |
Contributions are welcome. Please follow these steps:
-
Fork the repository on GitHub.
-
Clone your fork:
git clone https://github.com/MNSBaanu/GadgetHub.git cd GadgetHub -
Create a branch for your change:
git checkout -b feature/your-feature-name
-
Make your changes, then build to verify:
dotnet build GadgetHub.sln --configuration Release
-
Commit with a clear message:
git add . git commit -m "Describe your change"
-
Push your branch and open a Pull Request against
main:git push -u origin feature/your-feature-name
- Keep PRs focused on a single change.
- Follow existing code style and project structure.




