A modern admin/analytics dashboard built with React 18, TypeScript, Vite, Tailwind CSS and ApexCharts.
- TypeScript end-to-end with strict typing and custom domain types
- Multi-page routing with
react-router-domand lazy-loaded route chunks - Custom data hooks (
useFetch,useBitcoinData,useUserProfile,useDashboardData) - Theme context that toggles Tailwind's
darkclass on the document root and persists tolocalStorage - 3 chart types (donut, line, bar) built with ApexCharts
- Unit tests for hooks and context using Vitest + Testing Library
- Dark / light mode across all pages
| Concern | Technology |
|---|---|
| Framework | React 18 |
| Language | TypeScript |
| Build tool | Vite |
| Styling | Tailwind CSS + Material Tailwind |
| Charts | ApexCharts |
| Routing | React Router |
| Testing | Vitest + Testing Library |
| Linting | ESLint + Prettier |
- Node.js 18+
- npm
npm installnpm run devOpen http://localhost:3000.
npm run build # type-checks, then builds to dist/
npm run preview # serve the production build locallynpm test # run tests once
npm test -- --watch # run tests in watch modenpm run lint
npm run formatsrc/
├── api/ # HTTP clients (Binance, randomuser)
├── components/
│ └── layout/ # Layout, Sidebar, Navbar and dashboard tiles
├── context/ # Theme context (dark/light)
├── hooks/ # Reusable data-fetching hooks
├── pages/ # Route-level pages
├── test/ # Test setup and unit tests
└── types/ # Shared TypeScript types
MIT