A full-stack application for tracking cryptocurrency prices and market data using the CoinGecko API.
Frontend:
- React
- Vite
- Styled Components
- Tanstack Query
Backend:
- Node.js
- Express
- nodemon
- CoinGecko API integration
.
├── backend/ # Express API server
│ └── src/
│ ├── middleware/ # Error handling, etc.
│ ├── routes/ # API routes
│ └── services/ # External API services
├── frontend/ # React application
│ └── src/
│ ├── components/ # Reusable UI components
│ ├── features/ # Feature-based modules
│ ├── hooks/ # Reusable React hooks
│ ├── services/ # API client
│ └── styles/ # Global styles
└── shared/ # Shared constants and utilities
- Node.js (v16 or higher)
- npm or yarn
- Clone the repository:
git clone <your-repo-url>
cd <project-name>- Install all dependencies (recommended):
npm run install:allOR
- Install dependencies manually:
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm installOption 1: Run both services from root (recommended)
npm run devOption 2: Run services separately
- Start the backend server:
cd backend
npm run dev- In a new terminal, start the frontend:
cd frontend
npm run devThe frontend will be available at http://localhost:5173 and the backend at http://localhost:5000 (unless specified differently in the backend PORT environment variable).
PORT=5000
# Only one API key is needed. Pro key takes precedence if both are provided.
COINGECKO_DEMO_API_KEY=YOUR-DEMO-API-KEY
COINGECKO_PRO_API_KEY=YOUR-PRO-API-KEYVITE_API_URL=http://localhost:5000/apiSee .env.example files in each directory for more details.
- Data provided by CoinGecko API
- Built with React and Express
Christos Alvertis - alvertischris@gmail.com
Project Link: https://github.com/jknb/crypto-tracker