Crypto Dashboared
A full-stack cryptocurrency tracking platform with a real-time React dashboard and a structured Node.js/Express backend following the **MVC pattern**. Monitor top 100 coins, set price alerts, manage a personal watchlist, and explore interactive price charts — all powered by the free CoinGecko API.
Install / Use
npx skills add yared2124/Crypto-DashboaredInstalls into whichever agent you are using.
README
Crypto Dashboard
I built this to track crypto prices, manage my portfolio, and set alerts.
It’s a full‑stack app: React frontend (TypeScript) + Node.js backend with MySQL.
What works
- Live prices – top 100 coins, updates every 30 seconds (CoinGecko API).
- Chart – historical area chart (1D to 1Y) with real data.
- Portfolio – add buy/sell transactions, see P&L in real time.
- Alerts – set “above” or “below” price targets. Backend checks every 15 seconds.
- Watchlist – star your favourite coins.
- Google login – optional, uses Passport.js OAuth.
- Dark glass UI – Tailwind + a few custom classes.
Tech stack (simple version)
Backend
- Node.js + Express
- MySQL (raw queries with
mysql2) - JWT + bcrypt for auth
- Passport.js (Google OAuth)
- node‑cron for background jobs
- Axios for CoinGecko
Frontend
- React + TypeScript
- Tailwind CSS
- Recharts
- Axios + React Router
Running it locally
1. Clone & install backend
git clone https://github.com/yourname/crypto-dashboard.git
cd crypto-dashboard/backend
cp .env.example .env # edit DB credentials & JWT secret
npm install
npm run dev
Backend runs on http://localhost:5000.
2. Set up database
- Create MySQL database (e.g.
crypto_dashboard). - Run the schema:
backend/database.sql(included in repo). - The backend will auto‑fill top 100 coins on first price fetch.
3. Frontend
cd ../frontend
npm install
npm start
Open http://localhost:3000.
4. Google login
- Create OAuth creds in Google Cloud Console (Web application).
- Set redirect URI:
http://localhost:5000/api/auth/google/callback - Add your Client ID & Secret to
backend/.env. - Add your email as a test user on the OAuth consent screen.
API endpoints (the ones you’ll use most)
| Method | Endpoint | What it does |
|--------|----------|--------------|
| POST | /api/auth/register | Create account |
| POST | /api/auth/login | Get JWT token |
| GET | /api/crypto/overview | Live market data (top 10 + global stats) |
| GET | /api/crypto/history/:coinId | OHLCV for charts |
| GET | /api/portfolio | Your holdings with current P&L |
| POST | /api/portfolio/transaction | Add buy/sell |
| GET | /api/alerts | List your alerts |
| POST | /api/alerts | Create an alert |
| DELETE | /api/alerts/:alertId | Remove alert |
A Postman collection is in postman_collection.json.
Stuff I might add later
- News feed – endpoint is ready, just needs a free CryptoPanic key.
- Admin dashboard – role column exists but no special routes yet.
- WebSockets – would replace the 30‑second polling.
- Portfolio charts – allocation pie, historical value.
License
MIT – do whatever you want with it.
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
