76 lines
2.1 KiB
Markdown
76 lines
2.1 KiB
Markdown
# Story 6.1: Dashboard Overview & Statistics
|
|
|
|
## Epic Reference
|
|
**Epic 6:** Admin Dashboard
|
|
|
|
## User Story
|
|
As an **admin**,
|
|
I want **to see real-time metrics and key statistics at a glance**,
|
|
So that **I can understand the current state of my practice**.
|
|
|
|
## Acceptance Criteria
|
|
|
|
### User Metrics Card
|
|
- [ ] Total active clients
|
|
- [ ] Individual vs company breakdown
|
|
- [ ] Deactivated clients count
|
|
- [ ] New clients this month
|
|
|
|
### Booking Metrics Card
|
|
- [ ] Pending requests count (highlighted)
|
|
- [ ] Today's consultations
|
|
- [ ] This week's consultations
|
|
- [ ] This month's consultations
|
|
- [ ] Free vs paid breakdown
|
|
- [ ] No-show rate percentage
|
|
|
|
### Timeline Metrics Card
|
|
- [ ] Active case timelines
|
|
- [ ] Archived timelines
|
|
- [ ] Updates added this week
|
|
|
|
### Posts Metrics Card
|
|
- [ ] Total published posts
|
|
- [ ] Posts published this month
|
|
|
|
### Design
|
|
- [ ] Clean card-based layout
|
|
- [ ] Color-coded status indicators
|
|
- [ ] Responsive grid
|
|
|
|
## Technical Notes
|
|
|
|
```php
|
|
new class extends Component {
|
|
public function with(): array
|
|
{
|
|
return [
|
|
'userMetrics' => $this->getUserMetrics(),
|
|
'bookingMetrics' => $this->getBookingMetrics(),
|
|
'timelineMetrics' => $this->getTimelineMetrics(),
|
|
'postMetrics' => $this->getPostMetrics(),
|
|
];
|
|
}
|
|
|
|
private function getUserMetrics(): array
|
|
{
|
|
return Cache::remember('admin.metrics.users', 300, fn() => [
|
|
'total_active' => User::where('status', 'active')->whereIn('user_type', ['individual', 'company'])->count(),
|
|
'individual' => User::where('user_type', 'individual')->where('status', 'active')->count(),
|
|
'company' => User::where('user_type', 'company')->where('status', 'active')->count(),
|
|
'deactivated' => User::where('status', 'deactivated')->count(),
|
|
'new_this_month' => User::whereMonth('created_at', now()->month)->count(),
|
|
]);
|
|
}
|
|
};
|
|
```
|
|
|
|
## Definition of Done
|
|
- [ ] All metric cards display correctly
|
|
- [ ] Data is accurate and cached
|
|
- [ ] Responsive layout
|
|
- [ ] Tests pass
|
|
|
|
## Estimation
|
|
**Complexity:** Medium | **Effort:** 4-5 hours
|