| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Dashcode is a full-stack web application designed to aggregate, analyze, and visualize competitive programming statistics from multiple platforms. The system provides real-time performance tracking, comparative analytics, and achievement-based progress monitoring through an intuitive dashboard interface.
| Technology | Version | Purpose |
|---|---|---|
| React | 18.2.0 | Component-based UI framework |
| TypeScript | 5.2.2 | Static type checking and enhanced IDE support |
| TailwindCSS | 3.3.6 | Utility-first CSS framework |
| Recharts | 2.10.3 | Composable charting library for data visualization |
| Framer Motion | 10.16.16 | Production-ready animation library |
| Anime.js | 3.2.2 | Lightweight animation engine |
| Vite | 5.0.8 | Next-generation frontend build tool |
| Axios | 1.6.2 | Promise-based HTTP client |
| Technology | Version | Purpose |
|---|---|---|
| Express.js | 4.18.2 | Web application framework for Node.js |
| Cheerio | 1.0.0-rc.12 | Server-side HTML parsing for web scraping |
| Node-fetch | 3.3.2 | HTTP request library |
| CORS | 2.8.5 | Cross-Origin Resource Sharing middleware |
Clone the repository
git clone https://github.com/Dhuvie/dashcode.git
cd dashcodeInstall dependencies
npm installThis command installs all required packages for both frontend and backend.
Start the application
Option A: Concurrent execution (Recommended)
npm run dev:allStarts both frontend (port 3000) and backend (port 5000) servers simultaneously.
Option B: Separate terminals
# Terminal 1: Backend API server
npm run server
# Terminal 2: Frontend development server
npm run devAccess the application
Navigate to http://localhost:3000 in your web browser.
| Command | Description |
|---|---|
| npm run dev | Start frontend development server with hot reload |
| npm run server | Start backend API server |
| npm run dev:all | Start both frontend and backend concurrently |
| npm run build | Create production-optimized build |
| npm run preview | Preview production build locally |
Account Creation
Platform Configuration
Data Synchronization
Header Section
Main Dashboard Components
Advanced Stats Panel
Data Visualization
Achievement System
Comparative Analysis
Learning Resources
Auto-Refresh
Data Export
Method: Official GraphQL API
Endpoint: https://leetcode.com/graphql
Authentication: None required (public profile data)
Implementation: Backend proxy server
Data Retrieved:
Method: Official REST API
Endpoint: https://codeforces.com/api/
Authentication: None required (public API)
Implementation: Backend proxy server
Data Retrieved:
Method: Web scraping (HTML parsing)
Target: User profile pages
Authentication: None required
Implementation: Cheerio-based server-side scraping
Data Retrieved:
Limitations: Dependent on HTML structure stability. May require updates if CodeChef modifies their profile page layout.
Method: Web scraping (HTML parsing)
Target: User profile pages
Authentication: None required
Implementation: Cheerio-based server-side scraping
Data Retrieved:
Limitations: Dependent on HTML structure stability. May require updates if HackerRank modifies their profile page layout.
The system implements comprehensive error handling:
Create production build
npm run buildThis generates an optimized production bundle in the dist/ directory with:
Preview production build
npm run previewServes the production build locally for testing before deployment.
Frontend Deployment
Backend Deployment
Create a .env file for production environment variables:
PORT=5000
NODE_ENV=production
CORS_ORIGIN=https://yourdomain.comdashcode/ ├── src/ │ ├── components/ # React UI components │ │ ├── AchievementSystem.tsx # Milestone tracking component │ │ ├── AdvancedCharts.tsx # Data visualization components │ │ ├── AdvancedStats.tsx # Aggregate metrics display │ │ ├── AnimatedDifficultyBreakdown.tsx # Pie chart component │ │ ├── AnimatedProgressChart.tsx # Bar chart component │ │ ├── AnimatedStatCard.tsx # Individual metric cards │ │ ├── AuthModal.tsx # Authentication modal │ │ ├── ComparisonView.tsx # Global comparison component │ │ ├── ConfigModal.tsx # Platform configuration modal │ │ ├── ErrorBoundary.tsx # Error handling wrapper │ │ ├── ExportData.tsx # Data export functionality │ │ ├── LoadingAnimation.tsx # Loading state component │ │ ├── NotificationToast.tsx # Toast notification system │ │ ├── ParticleBackground.tsx # Animated background │ │ ├── QuickActions.tsx # Resource links component │ │ └── SettingsPanel.tsx # Application settings │ ├── contexts/ # React Context providers │ │ ├── AuthContext.tsx # Authentication state management │ │ └── DashboardContext.tsx # Dashboard data management │ ├── services/ # API integration layer │ │ └── api.ts # API service functions │ ├── types.ts # TypeScript type definitions │ ├── App.tsx # Root application component │ └── main.tsx # Application entry point ├── server/ │ └── index.js # Express.js backend server │ ├── API endpoints # /api/leetcode, /api/codeforces, etc. │ ├── Web scraping logic # Cheerio-based scraping │ └── CORS configuration # Cross-origin setup ├── public/ # Static assets │ └── index.html # HTML template ├── .env.example # Environment variable template ├── package.json # Project dependencies and scripts ├── tsconfig.json # TypeScript configuration ├── tailwind.config.js # TailwindCSS configuration ├── vite.config.ts # Vite build configuration └── README.md # Project documentation
Fork the repository
git clone https://github.com/Dhuvie/dashcode.git
cd dashcodeCreate a feature branch
git checkout -b feature/your-feature-nameMake your changes
Test your changes
npm run dev:allVerify functionality in the browser.
Commit and push
git add .
git commit -m "feat: add your feature description"
git push origin feature/your-feature-nameOpen a Pull Request
Platform Integration
Features
Testing
Documentation
This project is licensed under the MIT License. See the LICENSE file for complete details.
This project utilizes the following open-source libraries and resources:
For issues, questions, or feature requests, please open an issue on the GitHub repository.
| Back | FazBrowse Home | New Git URL |