The NetCover project is a web application designed to visualize the distribution of cell towers across Zimbabwe using data from OpenCellID. The application provides an interactive map with markers representing cell towers, allowing users to filter the towers by network provider.
- Map Visualization: Display cell towers on an interactive map using Leaflet.
- Network Filtering: Filter cell towers by network provider (Econet, Netone, Telecel, Fixed).
- Clustered Markers: Efficiently handle large numbers of markers with clustering.
- Custom Markers: Use Font Awesome icons for markers with color coding based on the network provider.
- Backend: ASP.NET Core Web API
- Database: PostgreSQL (using Entity Framework Core for ORM)
- Hosting: Local setup (not hosted due database querying limitations)
- Frontend: Angular
- Map Library: Leaflet with
leaflet.markercluster
plugin - UI Components: PrimeNG
- CSS Utilities: PrimeFlex
- Icons: Font Awesome
- Map Library: Leaflet with
Click this link:
choose an option
map
The filtering of cell towers is done based on the Mobile Network Code (MNC) which uniquely identifies each network provider. When a network provider is selected from the dropdown, the frontend sends a request to the backend to fetch cell towers associated with the selected MNC.
Backend Filtering Logic:
The GetCellTowersByProvider
method in the CellTowerService
filters the cell towers using the MNC:
- backend/
- Controllers/
- Domains/
- CellTower/
- CellTowerService.cs
- CellTowerController.cs
- CellTowerDto.cs
- Data/
- Models/
- Repository/
- Program.cs
- appsettings.json
- frontend/
- src/
- app/
- components/
- map/
- map.component.ts
- map.component.html
- map.component.css
- services/
- map.service.ts
- assets/
- styles/
- custom.css
- index.html
##Backend
# Clone the repository
git clone https://github.com/manasseh-zw/NetCover.git
# Navigate to the project directory
cd netcover.server
# Run the application
dotnet run
##Frontend
# Clone the repository
# Navigate to the project directory
cd netcover.client
# Restore npm packages
npm i
# Run
ng serve