A tool for visualizing and filtering location-based data on a map, designed to work with an Angular frontend and .NET/MSSQL backend.
- Interactive map visualization using Mapbox GL
- Category-based filtering (Volunteers, Participants, Families)
- Statistics panel showing current view data
- Responsive design for all device sizes
- Integration with .NET backend API
- Frontend: Angular 17 with TypeScript
- Styling: Tailwind CSS
- Map: Mapbox GL with ngx-mapbox-gl
- Backend: .NET Core API (integration ready)
- Database: Microsoft SQL Server (integration ready)
This application is designed to integrate with a .NET backend API. The integration points include:
- API Service: Generic service for making HTTP requests to the .NET API
- People Service: Service for handling people data from the API
- Models: TypeScript interfaces that match the C# models
- HTTP Interceptor: For handling authentication and error responses
The .NET backend should provide the following API endpoints:
GET /api/people
- Get all people or filtered by categoryGET /api/people/{id}
- Get a specific personPOST /api/people
- Create a new personPUT /api/people/{id}
- Update a personDELETE /api/people/{id}
- Delete a person
The SQL Server database should include a People
table with the following structure:
CREATE TABLE People (
Id UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID(),
City NVARCHAR(100) NOT NULL,
Category NVARCHAR(20) NOT NULL,
Latitude FLOAT NOT NULL,
Longitude FLOAT NOT NULL,
CreatedAt DATETIME2 NOT NULL DEFAULT GETUTCDATE(),
UpdatedAt DATETIME2 NULL
);
- Clone the repository
- Install dependencies:
npm install
- Start the development server:
ng serve
- Navigate to
http://localhost:4200/
Run ng build
to build the project for production. The build artifacts will be stored in the dist/
directory.
Update the environment files in src/environments/
to configure:
- API URL for your .NET backend
- Mapbox token
- Other environment-specific settings