Repository navigation
v0.3.3
Release v0.3.3 - Dashboard Overhaul & Leaderboard Introduction
Release Date: May 15, 2025
We’re excited to roll out v0.3.3, a feature-packed update that elevates the user experience with a revamped dashboard, a brand-new leaderboard, and enhanced performance. This release focuses on delivering richer insights into your Codewars journey, improving UI/UX, and refining the codebase for maintainability.
🚀 Highlights
- Leaderboard Debut: Introduced a fully functional leaderboard to showcase top Codewars performers and foster competition.
- Revamped Dashboard Gauges: Upgraded gauge visualizations for tracking daily, weekly, monthly, and yearly progress with dynamic colors and target feedback.
- Cleaner Codebase: Removed redundant files, reorganized assets, and streamlined components for better maintainability.
- Dependency Updates: Upgraded key dependencies to boost performance and security.
- Improved User Guidance: Added clear loading and empty states for unconnected or inactive Codewars accounts.
📋 Detailed Changes
✨ Features
- Leaderboard Implementation (
app/(dashboard)/leaderboard/LeaderBoard.tsx):- Added
LeaderBoardcomponent with pagination, error handling, and loading states. - Integrated
UsersTable,LeaderboardHeader, andPaginationfor a seamless experience. - Wrapped in
CodewarsProviderfor consistent data access.
- Added
- Enhanced Gauge System (
app/(dashboard)/Stats/Gauge/):- Introduced
SingleGauge.tsxandGaugeSwitch.tsxfor modular, reusable gauges. - Added dynamic color coding based on progress percentage (
getColorKeyfunction). - Displayed "Done!" for completed targets and contextual messages for daily, weekly, monthly, and yearly progress.
- Introduced
- Dashboard Stats Overhaul (
app/(dashboard)/Stats/index.tsx):- Replaced individual gauges with a grid-based
CodewarsTargetGaugescomponent. - Added loading UI and empty state with CTAs for connecting Codewars accounts or visiting the leaderboard.
- Replaced individual gauges with a grid-based
- Asset Reorganization:
- Renamed
LOGO LabtoBCFCODE logoand moved assets (.ico,.jpg,.png,.psd, OpenGraph/Twitter images).
- Renamed
- Vercel Deployment (
vercel.json):- Added custom install command for
pnpmsetup during Vercel deployments.
- Added custom install command for
🛠️ Improvements
- Codebase Cleanup:
- Removed
.eslintrc.jsonto simplify linting configuration. - Deleted
UnderDevelopment.tsxas it was no longer needed. - Replaced
useChallengeCountsByPeriod.tswithuseGaugeData.tsfor efficient data handling.
- Removed
- Daily Target Refinements (
app/(dashboard)/Stats/DailyTarget/):- Simplified
Fade.tsxby removing unuseduseStateimport. - Relocated
useTargetStore.tsfromstoresubdirectory and updated imports. - Removed
Loading.tsxand its logic fromindex.tsxfor a leaner component. - Updated
TargetSelector.tsxto use the relocateduseTargetStore.
- Simplified
- State Management (
useTargetStore.ts):- Added
immermiddleware for immutable state updates. - Updated persistence key to
PERSIST_KEYS.dailyTargetfor consistency.
- Added
- Dependency Upgrades (
package.json):- Updated
nextto15.3.2,eslintto9.26.0,axiosto1.9.0,mongooseto8.14.2,mongodbto6.16.0,zustandto5.0.4, and more. - Added
express,express-rate-limit,cors, andpkce-challengefor backend enhancements. - Upgraded dev dependencies like
vite,react-refresh,cypress, andbrowserslist.
- Updated
🐛 Bug Fixes
- Gauge Data Handling (
useGaugeData.ts):- Added fallback for
data?.codewars.codeChallenges?.listto prevent null reference errors.
- Added fallback for
- Pagination Loading UI (
app/(dashboard)/leaderboard/UsersTable/Pagination/Loading.tsx):- Enhanced loading animation with a faster wave effect (
500msvs.1.6s) and centered alignment.
- Enhanced loading animation with a faster wave effect (
- Type Definitions (
types/codewars.ts):- Moved
totalPagesandtotalItemstoCodeChallengesinterface and removed unusedCodewarsChallengesResponsetypes.
- Moved
🗑️ Removals
- Deleted
app/(dashboard)/Stats/DailyTarget/Loading.tsx(repurposed for leaderboard pagination). - Removed
app/(dashboard)/Stats/Gauge/hooks/useChallengeCountsByPeriod.tsin favor ofuseGaugeData.ts. - Deleted
app/(dashboard)/UnderDevelopment.tsx. - Removed commented-out
useGaugeStore.tsto avoid clutter.
🛡️ Security & Performance
- Dependency Updates: Mitigated potential vulnerabilities with updates to
axios,mongoose,sharp, and others. - Rate Limiting: Added
express-rate-limitto secure backend endpoints. - Optimized Data Fetching: Streamlined
useGaugeData.tsto reduce redundant computations and improve dashboard load times.
📚 Documentation
- Updated
types/codewars.tsto align with the latest data structure. - Added
vercel.jsonto document deployment setup.
🧑💻 Contributors
Thank you to our amazing contributors:
- [Morteza Bakhshandeh/@BCFCODE] - Led dashboard enhancements, leaderboard implementation, and codebase cleanup.
🔧 How to Upgrade
- Pull the latest changes from the
mainbranch. - Run
corepack enable && corepack prepare pnpm@10.10.0 --activateto configurepnpm. - Install dependencies with
pnpm install --no-frozen-lockfile. - Deploy using the updated
vercel.jsonconfiguration.
💬 Feedback
We’d love your input on this release! Open an issue or join the conversation in our repository discussions.