feat: implement analytics endpoints (task 28)
- Created analytics service with summary, trends, comparison, and aggregated data methods - Implemented 5 analytics endpoints: summary, trends, comparison, aggregated, and CSV export - Added time series data with day/week/month interval support - Implemented period-over-period comparison metrics with percentage changes - Added CSV export functionality using json2csv - Updated frontend analytics service to unwrap API responses - Fixed chart components to work with new data structure (reportCount, eventCount, litterCollected) - Updated TypeScript types to match backend API structure - All endpoints tested and verified working Requirements satisfied: 5.1, 5.2, 5.3, 5.4, 5.5
This commit is contained in:
@@ -149,12 +149,14 @@ export interface AnalyticsSummary {
|
||||
totalReports: number;
|
||||
totalEvents: number;
|
||||
totalUsers: number;
|
||||
totalLitterCollected?: number; // in kilograms
|
||||
periodComparison?: {
|
||||
reports: number; // percentage change
|
||||
events: number;
|
||||
users: number;
|
||||
};
|
||||
totalLitterCollected: number; // in kilograms
|
||||
reportsByType: Record<string, number>;
|
||||
reportsByQuantity: Record<string, number>;
|
||||
verifiedReports: number;
|
||||
cleanedReports: number;
|
||||
activeUsers: number;
|
||||
upcomingEvents: number;
|
||||
completedEvents: number;
|
||||
}
|
||||
|
||||
export interface DateRange {
|
||||
@@ -164,20 +166,19 @@ export interface DateRange {
|
||||
|
||||
export interface TimeSeriesDataPoint {
|
||||
date: string;
|
||||
reports: number;
|
||||
events?: number;
|
||||
reportCount: number;
|
||||
eventCount: number;
|
||||
litterCollected: number;
|
||||
}
|
||||
|
||||
export interface LitterTypeDistribution {
|
||||
type: LitterType;
|
||||
type: string;
|
||||
count: number;
|
||||
percentage: number;
|
||||
}
|
||||
|
||||
export interface QuantityAggregation {
|
||||
quantity: QuantityLevel;
|
||||
level: string;
|
||||
count: number;
|
||||
percentage: number;
|
||||
}
|
||||
|
||||
// External environmental data types
|
||||
|
||||
Reference in New Issue
Block a user