Skip to content

ryantusi/ShipChandlerHub

Repository files navigation

🚒 ShipChandlerHub - Maritime Tracking, Inventory, & Order Management System

A complete web-based inventory & order management and vessel tracking system for ship chandlers, built using ASP.NET Core MVC, SQL Server, and deployed on Azure.

πŸš€ Real-world logistics + maritime use case. CRUD-capable with smart dashboards, live vessel tracking (via IMO), and inventory system built around industry-standard IMPA codes.


πŸ“Έ Project Preview

Project Preview


βœ… Project Highlights

  • Project Name: ShipChandlerHub
  • Domain: Ship Chandling, Logistics, Maritime Tracking
  • Type: Full-Stack MVC Web App

πŸ”§ Tech Stack

Layer Tech Used
Frontend ASP.NET Core MVC, Razor Pages, Bootstrap
Backend C#, ASP.NET Controllers, Entity Framework Core
Database SQL Server
Cloud Azure App Service, Azure SQL Database

πŸ”„ High-Level Workflow

Core Modules:

  1. πŸ“Š Dashboard Overview
  2. πŸ›°οΈ Vessel Tracker (bulk IMO-based ETA & destination fetch)
  3. πŸ“¦ Inventory Management (IMPA-coded stock system)
  4. πŸ“‘ Order Management (Vessel-based item orders)

🧱 Page-by-Page Design

🧭 Admin Dashboard

Displays key metrics:

  • Total Vessels
  • Total Orders
  • Total Stock Items
    Quick navigation to major modules.

πŸ›°οΈ Vessel Tracker

Input Output
IMO numbers Table showing: IMO, Destination, ETA

Features:

  • Bulk input of IMO numbers
  • Export results
  • Backed by API or Mock JSON

πŸ“‘ Order Dashboard

Field Description
Vessel IMO Target vessel
Order List Items associated with vessel
Status Order progress (Pending, Shipped, etc.)
Created Date Timestamp of order

Features:

  • Create/Edit/Delete Orders
  • Add Inventory Items to Order (multi-select)
  • Filter by vessel, status, date

πŸ“¦ Inventory Manager

Field Description
IMPA Code Maritime standard inventory code
Item Name Descriptive name
Quantity Current stock
Category (Food / Tools / Safety / etc.)

Features:

  • Add/Edit/Delete Items (Admin Only)
  • Filter by IMPA, Category
  • Add to Orders via junction table

🧠 Internal Architecture

  • 🧩 Entity Framework Core for all DB interaction
  • πŸ“€ ViewModels to communicate between Views & Controllers
  • 🎨 Bootstrap + Razor Pages for responsive UI
  • πŸ” ASP.NET Identity for authentication & role-based access
  • πŸ”„ LINQ Queries for filtering/search
  • 🌐 HttpClient to consume API (or mock)
  • ☁️ Azure App Service for deployment

πŸ§ͺ Sample User Flow

  1. Admin/User logs in & views dashboard
  2. Tracks vessels by entering IMO numbers
  3. Adds/Updates inventory
  4. Creates orders for vessels with multiple items
  5. Filters/exports data as needed

βœ… What I Learned

Skill Description
ASP.NET MVC Full-stack architecture
C# Programming Backend logic + object-oriented design
EF Core ORM Relational data access, LINQ, DB Seeding
SQL Schema design, joins, migrations
Azure Deployment Hosting App + Database on Azure
REST API External data integration using HttpClient
Domain Knowledge Logistics + Ship Chandling System Architecture

πŸ“‚ Project Structure

πŸ“¦ ShipChandlerHub
┣ πŸ”— Connected Services
┣ πŸ“¦ Dependencies
┣ βš™οΈ Properties
┣ 🌐 wwwroot
┣ πŸ“ Areas
┣ πŸ“ Controllers
┃ ┣ πŸ“„ DashboardController.cs
┃ ┣ πŸ“„ HomeController.cs
┃ ┣ πŸ“„ InventoryItemsController.cs
┃ ┣ πŸ“„ OrdersController.cs
┃ ┣ πŸ“„ TestController.cs
┃ β”— πŸ“„ VesselTrackerController.cs
┣ πŸ“ Data
┃ ┣ πŸ“ Seed
┃ ┃ β”— πŸ“„ DbInitializer.cs
┃ β”— πŸ“„ ApplicationDbContext.cs
┣ πŸ“ Migrations
┣ πŸ“ MockData
┃ β”— πŸ“œ mock_vessels.json
┣ πŸ“ Models
┃ ┣ πŸ“„ Company.cs
┃ ┣ πŸ“„ ErrorViewModel.cs
┃ ┣ πŸ“„ InventoryItem.cs
┃ ┣ πŸ“„ Order.cs
┃ ┣ πŸ“„ OrderItem.cs
┃ β”— πŸ“„ Vessel.cs
┣ πŸ“ Views
┃ ┣ πŸ“ Dashboard
┃ ┃ β”— πŸ“„ Index.cshtml
┃ ┣ πŸ“ Home
┃ ┣ πŸ“ InventoryItems
┃ ┃ ┣ πŸ“„ Create.cshtml
┃ ┃ ┣ πŸ“„ Delete.cshtml
┃ ┃ ┣ πŸ“„ Details.cshtml
┃ ┃ ┣ πŸ“„ Edit.cshtml
┃ ┃ β”— πŸ“„ Index.cshtml
┃ ┣ πŸ“ Orders
┃ ┃ ┣ πŸ“„ Create.cshtml
┃ ┃ ┣ πŸ“„ Delete.cshtml
┃ ┃ ┣ πŸ“„ Details.cshtml
┃ ┃ ┣ πŸ“„ Edit.cshtml
┃ ┃ ┣ πŸ“„ Index.cshtml
┃ ┃ β”— πŸ“„ UpdateStatus.cshtml
┃ ┣ πŸ“ Shared
┃ β”— πŸ“ VesselTracker
┃ ┃ ┣ πŸ“„ Index.cshtml
┃ ┃ β”— πŸ“„ _ViewImports.cshtml
┃ ┃ β”— πŸ“„ _ViewStart.cshtml
┣ πŸ“„ .gitignore
┣ πŸ“„ appsettings.json
┣ πŸ“„ Program.cs
β”— πŸ“„ ScaffoldingReadMe.txt

πŸš€ Deployment

This app is deployed to Microsoft Azure using Visual Studio:

  • 🌐 Azure App Service – for Web Hosting
  • πŸ—„οΈ Azure SQL Database – for cloud-hosted database

🀝 Acknowledgements

  • πŸ”— Vessel Tracker API (or JSON mock used)
  • πŸ“˜ Microsoft Learn - ASP.NET Core Docs
  • 🎨 Bootstrap – for frontend design
  • πŸ“š Entity Framework Core Docs
  • 🧠 ChatGPT

About

🚒 A simple web-based Maritime Vessel Tracking, Inventory & Order management system for ship chandlers, built using ASP.NET Core MVC, SQL Server, and deployed on Azure πŸš€ Real-world logistics + maritime use case. CRUD-capable with dashboards, live vessel tracking (via IMO), and inventory system built around industry-standard IMPA codes

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages