ImportCost Pro is a web-based application developed with ASP.NET Core MVC, Entity Framework Core, and SQL Server. The system was designed to support import operations by managing master data, import orders, operational expenses, and landed cost calculations.
The project was developed collaboratively by a team of three developers using a layered architecture approach and modern software engineering practices.
https://github.com/JoelAlBenitez/ImportCost-Pro.git
- Overview
- Objectives
- Key Features
- System Modules
- Architecture
- Project Structure
- Technologies Used
- Database
- Installation
- Configuration
- Entity Framework Core Migrations
- Running the Application
- Business Rules Implemented
- Development Team
- Git Workflow
- Future Improvements
- License
ImportCost Pro was created to centralize and automate the management of import operations.
The platform provides functionality for:
- Product management
- Supplier management
- Importer management
- Tariff category administration
- Country management
- Currency management
- Exchange rate administration
- Tax configuration
- Import order management
- Import expense registration
- Landed cost calculation
The solution follows a layered architecture that promotes maintainability, scalability, and separation of concerns.
- Manage import-related master data.
- Standardize import registration processes.
- Maintain historical information integrity.
- Support import cost analysis.
- Centralize tax and tariff configurations.
- Calculate landed costs accurately.
- Apply business rules and validations consistently.
- Product Maintenance
- Supplier Maintenance
- Importer Maintenance
- Tariff Category Maintenance
- Country Management
- Currency Management
- Exchange Rate Management
- Tax Configuration
- Import Order Registration
- Order Details Management
- Import Expense Registration
- Landed Cost Calculation
- Layered Architecture
- Entity Framework Core
- SQL Server Integration
- Dependency Injection
- Repository Pattern
- MVC Pattern
- Data Annotations Validation
- JavaScript Pagination
- Responsive UI
- Entity Relationships
- Database Migrations
| Module | Description |
|---|---|
| Products | Product registration and management |
| Suppliers | Supplier administration |
| Importers | Importer administration |
| Tariff Categories | Customs and tax category management |
| Countries | Country administration |
| Currencies | Currency administration |
| Exchange Rates | Exchange rate management |
| Tax Configuration | Tax settings and percentages |
| Import Orders | Import order lifecycle |
| Order Details | Product details within orders |
| Import Expenses | Import-related expenses |
| Landed Cost | Final import cost calculation |
The project follows a Layered Architecture approach.
Responsible for:
- MVC Controllers
- Razor Views
- User Interaction
- Client-side JavaScript
Responsible for:
- Business Logic
- DTOs
- ViewModels
- Services
Responsible for:
- Entity Framework Core
- Repositories
- Database Context
- Entity Configurations
- Migrations
flowchart TD
UI[ASP.NET Core MVC]
APP[Application Layer]
PER[Persistence Layer]
DB[(SQL Server)]
UI --> APP
APP --> PER
PER --> DB
ImportCost-Pro
│
├── ImportCost
│ ├── Controllers
│ ├── Views
│ ├── wwwroot
│
├── Application
│ ├── DTOs
│ ├── Services
│ ├── ViewModel
│ └── ServicesRegistration
│
├── Persistence
│ ├── Context
│ ├── Entities
│ ├── Repositories
│ ├── Configurations
│ ├── Migrations
│ └── ServiceRegistration
│
└── ImportCost-Pro.sln
| Technology | Purpose |
|---|---|
| .NET 9 | Development Platform |
| ASP.NET Core MVC | Web Framework |
| Entity Framework Core | ORM |
| SQL Server | Database Engine |
| Razor Views | UI Rendering |
| JavaScript | Client-side Features |
| Bootstrap | UI Styling |
| LINQ | Data Queries |
| Dependency Injection | Service Management |
| Git | Version Control |
| GitHub | Source Control Hosting |
- Products
- Suppliers
- Importers
- Tariff Categories
- Countries
- Currencies
- Exchange Rates
- Tax Configuration
- Importation Orders
- Importation Order Details
- Importation Expenses
- Landed Cost Summary
- Landed Cost Detail
git clone https://github.com/JoelAlBenitez/ImportCost-Pro.gitcd ImportCost-Prodotnet restoredotnet buildOpen:
ImportCost/appsettings.json
Configure:
{
"ConnectionStrings": {
"DefaultConnection": "Server=YOUR_SERVER;Database=ImportCostDB;Trusted_Connection=True;TrustServerCertificate=True"
}
}Example:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=ImportCostDB;Trusted_Connection=True;TrustServerCertificate=True"
}
}dotnet tool install --global dotnet-efVerify installation:
dotnet ef --versionApply migrations:
dotnet ef database update \
--project Persistence \
--startup-project ImportCostdotnet ef migrations add MigrationName \
--project Persistence \
--startup-project ImportCostRun the project:
dotnet run --project ImportCostOr:
cd ImportCost
dotnet runThe application implements multiple business rules extracted from the project requirements.
- Unique product code validation.
- Active/inactive status management.
- Historical integrity preservation.
- Weight and volume validations.
- Tariff category validation.
- Active supplier filtering.
- Country validation.
- Currency validation.
- Historical data protection.
- Unique tax identification validation.
- Import order relationship validation.
- Historical consistency rules.
- Unique tariff code validation.
- Tax applicability rules.
- Selective tax validations.
- Historical calculation protection.
- Product association.
- Supplier association.
- Importer association.
- Expense registration.
- Landed cost calculations.
| Contributor | Responsibilities |
|---|---|
| Joel Benitez | Products, Importers, Suppliers, Tariff Categories |
| Sebastian Peguero | Landed Cost, Import Orders, Order Details, Import Operations |
| Adrian (Adrixn23) | Countries, Currencies, Exchange Rates, Tax Configuration |
| Developer | GitHub |
|---|---|
| Joel Benitez | https://github.com/JoelAlBenitez |
| Sebastian Peguero | https://github.com/SebasPeguero |
| Adrian | https://github.com/Adrixn23 |
The project was developed using a collaborative Git workflow.
main
development
feature/*
Development process:
- Create feature branch.
- Implement functionality.
- Commit changes.
- Merge into development.
- Validate integration.
- Merge into main.
This project was developed as part of an academic software engineering initiative focused on:
- Requirements Analysis
- Software Design
- Layered Architecture
- Database Modeling
- Entity Framework Core
- Team Collaboration
- Version Control
- Business Rule Implementation
Potential enhancements include:
- Authentication and Authorization
- Role-Based Access Control
- Reporting Module
- Dashboard Analytics
- PDF Export
- Excel Export
- Audit Logs
- Unit Testing
- Integration Testing
- Docker Support
- CI/CD Pipelines
This project was developed for educational and academic purposes.
All rights belong to their respective authors and contributors.
Special thanks to all contributors involved in the analysis, design, development, testing, and implementation of the ImportCost Pro system.