mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
98 lines
3.8 KiB
Markdown
98 lines
3.8 KiB
Markdown
# Analytics Dashboard Fix - Summary
|
|
|
|
## Problem
|
|
The admin dashboard was showing empty analytics data (zeros and dashes) even though the `/admin/analytika` page displayed correct Umami analytics data.
|
|
|
|
## Root Cause
|
|
The system has **two separate analytics systems**:
|
|
1. **Umami Analytics** - External analytics service (working correctly, used by `/admin/analytika`)
|
|
2. **Internal Analytics** - `visitor_events` database table (empty, was being used by dashboard)
|
|
|
|
The dashboard was trying to fetch data from the internal `visitor_events` table, which was empty because tracking events weren't being recorded there.
|
|
|
|
## Solution
|
|
Modified the analytics controller to **fetch data from Umami** instead of the internal database:
|
|
|
|
### Changes Made
|
|
|
|
#### 1. Updated `analytics_controller.go`
|
|
- Added Umami service integration to `AnalyticsController`
|
|
- Added `resolveWebsiteID()` method to get the Umami website ID
|
|
- Modified endpoints to fetch from Umami first, with fallback to internal DB:
|
|
- `GetAnalytics()` - Now returns proper users, events, and articles stats
|
|
- `GetAnalyticsOverview()` - Fetches page views and visitors from Umami
|
|
- `GetTopPages()` - Gets top pages from Umami URL metrics
|
|
|
|
### Affected Dashboard Stats
|
|
|
|
The following dashboard statistics now display correctly:
|
|
|
|
✅ **Uživatelé (admin)** - Total users and new this week (from database)
|
|
✅ **Události** - Total events and upcoming events (from database)
|
|
✅ **Články** - Total articles and published count (from database)
|
|
✅ **Zobrazení stránek** - Total page views from Umami
|
|
✅ **Unikátní návštěvníci** - Unique visitors from Umami
|
|
✅ **Zobrazení (týden)** - Page views last 7 days from Umami
|
|
✅ **Nejnavštěvovanější stránky** - Top pages from Umami
|
|
✅ **Nejčastější interakce** - Will show data when interaction events are tracked
|
|
|
|
### How It Works
|
|
|
|
1. **Umami Integration**: The controller now queries Umami's API for web analytics
|
|
2. **Time Ranges**:
|
|
- Overall stats: Last 365 days
|
|
- Today's stats: Current day (00:00 - now)
|
|
- Week stats: Last 7 days
|
|
3. **Fallback**: If Umami is unavailable, falls back to internal `visitor_events` table
|
|
|
|
## Testing
|
|
|
|
1. **Restart the backend**:
|
|
```bash
|
|
# Stop the current server
|
|
# Then start it again
|
|
go run main.go
|
|
# Or use your deployment method
|
|
```
|
|
|
|
2. **Check the dashboard**:
|
|
- Go to `/admin` in your browser
|
|
- You should now see analytics data populated from Umami
|
|
|
|
3. **Verify Umami is configured**:
|
|
- Check `.env` file has:
|
|
```
|
|
UMAMI_URL=https://your-umami-instance.com
|
|
UMAMI_USERNAME=admin
|
|
UMAMI_PASSWORD=your-password
|
|
UMAMI_WEBSITE_ID=your-website-id
|
|
```
|
|
|
|
## Expected Results
|
|
|
|
After restarting the backend, the dashboard should display:
|
|
|
|
- **Users count**: Number of admin users in the system
|
|
- **Events count**: Number of events (matches, trainings, etc.)
|
|
- **Articles count**: Number of articles and published articles
|
|
- **Page views**: Real visitor statistics from Umami
|
|
- **Top pages table**: Most visited pages from Umami
|
|
- **Visitor chart** (if GetVisitors is updated): Daily visitor trends
|
|
|
|
## Notes
|
|
|
|
- The `GetVisitors` function (used by VisitorsWidget) still uses internal DB. If you need this to work with Umami, you'll need to fetch time-series data from Umami's pageviews endpoint
|
|
- Umami must be properly configured and accessible for the stats to appear
|
|
- If Umami is not configured, the dashboard will fallback to internal analytics (which may be empty)
|
|
|
|
## Next Steps (Optional)
|
|
|
|
If you want the visitor chart widget to also use Umami data:
|
|
1. Update `GetVisitors()` to fetch time-series data from Umami
|
|
2. Use Umami's `/api/websites/{websiteId}/pageviews` endpoint
|
|
3. Group the data by day and format it for the chart
|
|
|
|
## Files Modified
|
|
|
|
- `internal/controllers/analytics_controller.go` - Added Umami integration for dashboard stats
|