ROW Portal Design Document
1. Entity Relationship Diagram (ERD)
The ERD for the ROW Portal includes the following entities and relationships:
- Projects (ProjectId PK)
- Packages (PackageId PK, ProjectId FK)
- Towers (TowerId PK, PackageId FK, TowerTypeId FK)
- TowerTypes (TowerTypeId PK)
- Locations (LocationId PK)
- ROWNature (NatureId PK)
- ROWDetails (ROWId PK, TowerId FK, LocationId FK, NatureId FK)
Relationships:
- One Project can have multiple Packages.
- One Package can have multiple Towers.
- One Tower is associated with one TowerType.
- One ROWDetail is linked to one Tower or one Location, and one Nature.
2. ASP.NET Core MVC Model Class Samples
Project.cs
public int ProjectId { get; set; }
public string ProjectName { get; set; }
public double LineLength { get; set; }
Package.cs
public int PackageId { get; set; }
public int ProjectId { get; set; }
public string PackageLabel { get; set; }
public string ContractorName { get; set; }
public int NoOfTowers { get; set; }
Tower.cs
public int TowerId { get; set; }
public string TowerNo { get; set; }
public int PackageId { get; set; }
public int TowerTypeId { get; set; }
TowerType.cs
public int TowerTypeId { get; set; }
public string TowerTypeName { get; set; }
Location.cs
public int LocationId { get; set; }
public string Village { get; set; }
public string Tehsil { get; set; }
public string District { get; set; }
public string State { get; set; }
ROWNature.cs
public int NatureId { get; set; }
public string NatureDescription { get; set; }
ROWDetail.cs
public int ROWId { get; set; }
public int TowerId { get; set; }
public int LocationId { get; set; }
public int NatureId { get; set; }
public DateTime ROWStartDate { get; set; }
public string StepsTaken { get; set; }
public DateTime? ROWResolutionDate { get; set; }
public bool IsResolved { get; set; }
3. Controller and View Structure
Controllers:
- ProjectController: Handles CRUD operations for projects.
- PackageController: Manages packages and their association with projects.
- TowerController: Manages tower entries and types.
- ROWController: Handles ROW entry and resolution.
- ReportController: Generates filtered reports.
Views:
- Razor views for each controller action.
- Partial views for reusable components like dropdowns and filters.
- Layout view for consistent UI design.
4. UI/UX Form Layout Suggestions
Project Form
Project Name (TextBox)
Line Length (Number)
Package Form
Select Project (Dropdown)
Package Label (TextBox)
Contractor Name (TextBox)
Number of Towers (Number)
Tower Form
Select Project (Dropdown)
Select Package (Dropdown filtered by Project)
Tower Number (TextBox)
Tower Type (Dropdown)
Tower Type Form
Tower Type Name (TextBox)
Location Form
Village (TextBox)
Tehsil (TextBox)
District (TextBox)
State (Dropdown or TextBox)
ROW Nature Form
Nature Description (TextBox)
ROW Entry Form
Select Project (Dropdown)
Select Package (Dropdown filtered by Project)
Select Tower (Dropdown filtered by Package)
Select Location (Dropdown or Autocomplete)
Nature of ROW (Dropdown)
ROW Start Date (Date Picker)
Steps Taken (Multiline TextBox)
Expected Resolution Date (Optional)
ROW Resolution Form
Select Unresolved ROW (Dropdown or Table View)
Resolution Date (Date Picker)
Additional Notes (Optional)
Report Filter Form
Project (Dropdown)
Package (Dropdown)
Tower Number (TextBox)
Location (Dropdowns or Autocomplete)
Nature of ROW (Dropdown)
Date Range (Start and End Date Pickers)