Created the dashboard data fetching#248
Merged
A6dulmalik merged 1 commit intoMindBlockLabs:mainfrom Feb 23, 2026
Merged
Conversation
A6dulmalik
approved these changes
Feb 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implemented Dashboard Data Fetching Using Context (Stats + Categories)
Description
Implement the data layer for the Dashboard by consuming backend endpoints and exposing the data via a context or feature-based abstraction.
❗ Pages and UI components must not directly call APIs.
API Endpoints
GET /dashboard/stats
GET /categories
Scope of Work
Create Dashboard Context (or Feature Hook)
Create something like:
DashboardProvider
or useDashboard()
or dashboard.feature.ts
This layer should:
Fetch dashboard stats
Fetch categories
Handle loading and error states
Expose normalized data to the UI
Example shape:
{
stats: {
streak: number;
points: number;
dailyQuestProgress: {
completed: number;
total: number;
};
};
categories: Category[];
isLoading: boolean;
error: string | null;
Data Fetching Responsibilities
Fetch user streak & points from /dashboard/stats
Fetch available categories and user levels from /categories
Handle:
Loading states
Error states
No duplicated API calls across components
Integrate With Dashboard Page
Wrap the dashboard page with the provider
UI components should:
Consume data via context
Never import or call fetch / axios directly
Requirements
Use Context API or a feature-based hook
No API calls inside UI components
Clean separation of concerns
Types defined for API responses
Loading state exposed for UI consumption
Acceptance Criteria
Dashboard loads data from backend successfully
Loading state is available to UI
No page or component directly calls endpoints
Data logic is centralized and reusable
Easy to extend for future dashboard featuresImplement Dashboard Data Fetching Using Context (Stats + Categories) #156
Open
Feature
@phertyameen
Description
phertyameen
opened on Jan 18
Member
Description
Implement the data layer for the Dashboard by consuming backend endpoints and exposing the data via a context or feature-based abstraction.
❗ Pages and UI components must not directly call APIs.
API Endpoints
GET /dashboard/stats
GET /categories
Scope of Work
Create Dashboard Context (or Feature Hook)
Create something like:
DashboardProvider
or useDashboard()
or dashboard.feature.ts
This layer should:
Fetch dashboard stats
Fetch categories
Handle loading and error states
Expose normalized data to the UI
Example shape:
{
stats: {
streak: number;
points: number;
dailyQuestProgress: {
completed: number;
total: number;
};
};
categories: Category[];
isLoading: boolean;
error: string | null;
Data Fetching Responsibilities
Fetch user streak & points from /dashboard/stats
Fetch available categories and user levels from /categories
Handle:
Loading states
Error states
No duplicated API calls across components
Integrate With Dashboard Page
Wrap the dashboard page with the provider
UI components should:
Consume data via context
Never import or call fetch / axios directly
Requirements
Use Context API or a feature-based hook
No API calls inside UI components
Clean separation of concerns
Types defined for API responses
Loading state exposed for UI consumption
Acceptance Criteria
Dashboard loads data from backend successfully
Loading state is available to UI
No page or component directly calls endpoints
Data logic is centralized and reusable
Easy to extend for future dashboard features
closes #156