This Node.js application fetches cryptocurrency data from the CoinMarketCap API, filters the data based on user-specified criteria, calculates technical indicators (like RSI), and provides the following functionalities:
- Console Output: Displays filtered cryptocurrency data as a formatted table.
- Web Interface: A dynamic web UI for filtering and visualizing cryptocurrencies.
- Filter Criteria:
- Market Cap (min/max)
- Price (min/max)
- Liquidity
- Coin Listing Date
- Platforms
- Quantity
- Technical Indicators:
- Average Price: Calculates the average price of filtered cryptocurrencies.
- Relative Strength Index (RSI): Indicates overbought or oversold conditions.
- Alerts: Flags coins based on RSI thresholds (e.g., overbought or oversold).
- Web UI:
- Intuitive interface for setting filter parameters.
- Interactive table to display filtered cryptocurrencies.
- Console Table: Clean and formatted output using
console.table.
- Node.js (v14 or higher)
- NPM (comes with Node.js)
- A valid CoinMarketCap API Key.
-
Clone the repository:
git clone https://github.com/sandipkalsait/crypto-dashboard.git cd crypto-dashboard -
Install dependencies:
npm install -
Create a
.envfile in the root directory:COINMARKETCAP_API_KEY=your_api_key -
Start the server:
npm start
- Open your browser and navigate to
http://localhost:3000. - Use the filter options to set parameters for cryptocurrencies (e.g., min price, max market cap).
- View the filtered results and technical indicators in the interactive table.
- The filtered results will also be displayed in the console when the server is running.
- Adjust filter criteria in the
getFilteredCoinsfunction inapp.jsto customize console output.
project-root/
├── public/
│ ├── css/
│ │ └── style.css # Styling for the web UI
│ ├── js/
│ │ └── script.js # Dynamic functionality for the UI
├── routes/
│ └── index.js # Routes for API calls and rendering pages
├── views/
│ ├── index.ejs # Main UI template
├── .env # Environment variables (e.g., API key)
├── app.js # Main application logic
├── package.json # Project configuration
├── README.md # Documentation
- Node.js: Backend runtime environment.
- Express.js: Web application framework.
- EJS: Templating engine for dynamic HTML.
- Axios: For API requests.
- CSS/JavaScript: For styling and interactivity.
- dotenv: For managing environment variables.
- Add more advanced technical indicators.
- Implement a database to store favorite coins or user preferences.
- Enhance UI with additional graphs or charts (e.g., using Chart.js).
This project is licensed under the MIT License. See the LICENSE file for details.