A modern analytics dashboard for the Streamify music streaming service, built with Next.js 15 and React 19.
-
📈 Comprehensive Analytics Dashboard
- Key Metrics Display (Total Users, Active Users, Total Streams,Growth Rates)
- Top Artist Information
-
📊 Data Visualization
- User Growth Line Chart
- Revenue Distribution Pie Charts
- Top 5 Streamed Songs
-
Interactive Data Tables with AG Grid
- 📖 Sorting and Filtering functionalities for recent streams
-
Bonus Features:
- PWA for adaptablity to several devices and user focus for important tasks
- Implemented sorting and filtering for data tables.
- Interactive charts, allowing hover and click actions for deeper insights.
-
🎨 Modern Design
- Responsive Layout
- Dark/Light Mode Support
- Clean UI Components with shadcn/ui
-
🚀 Performance Optimized
- Server-Side Rendering
- Partial Pre-rendering
- Interactive Charts and Tables
- Next.js 15
- React 19
- TypeScript
- Tailwind CSS
- shadcn/ui Components
- AG Grid for Tables
- Bun Package Manager
-
Component Design:
- The project was broken down into modular components for better maintainability.
- Components were created for metrics, data visualizations, and the data table to separate concerns.
-
State Management:
- Redux was used to manage the state of the sidebar and user information.
- The dashboard pulls state information to determine layout adjustments and display personalized content.
-
Responsiveness:
- Tailwind CSS was used to ensure that the dashboard is responsive across different devices.
- Used ShadCN for better and responsive design.
-
Mock Data:
- Mock data was used for charts and tables.
-
Performance Considerations:
- Memoization and lazy loading were applied to improve performance where necessary.
- State changes and layout adjustments are optimized to prevent unnecessary re-renders.
- Mock Data: Instead of connecting to a real backend, mock data was used. But a delay was added to mimic an API fetch.
- Chart Interactivity: The chart interactions are limited to hover and click events, but more advanced interactions like zoom or data export could be added in the future.
- Testing: Limited unit testing was performed due to time constraints.
- Bun (Package Manager)
- Node.js
brew install bun
bun i
bun dev ≈≈ npm run dev
bun run build ↔ npm run buildThis will start the development server and the project will be accessible in your browser, typically at
http://localhost:3000
| _directory (/src) | Purpose |
|---|---|
| app | Next.js Routes |
| components | Reusable UI Components |
| lib | Utilities & Helpers |
| hooks | Custom React Hooks |
- Library management (Trending, Pending, Approved)
- Artist tracking (Top Artists, Payments, Banned)
- User analytics (Charts, Subscriptions, Quota, Streams)
- Settings configuration
- Framework: Vitest
- React Testing Library
- WIP in test branch

