A full-stack web application built to track real-time cryptocurrency data and fiat exchange rates.
This project consists of a Python (FastAPI) backend that fetches and caches data from external APIs, and a React (Vite) frontend that provides a clean, responsive user interface using Ant Design and TailwindCSS.
- Cryptocurrency Tracker: View real-time data for top cryptocurrencies, including current price in USD, market capitalization, and 24-hour price changes.
- Fiat Exchange Rates: Check the latest fiat currency exchange rates (e.g., EUR, GBP, ILS, JPY, CNY) relative to the US Dollar (USD).
- Caching Mechanism: The backend uses
aiocacheto temporarily store API responses (1-24 hours depending on the data type) to optimize performance and reduce third-party API limits. - Responsive UI: A modern interface with a sidebar navigation menu and interactive data cards.
- React 19 (initialized with Vite)
- TailwindCSS v4 for utility-first styling
- Ant Design (antd) for UI components (Menu, Cards, Spinners, Alerts)
- Prop-Types for type-checking components
- Python 3
- FastAPI for building the REST API
- aiohttp for asynchronous HTTP requests to external services
- aiocache for caching responses
- Uvicorn as the ASGI web server
- Pydantic for data validation and settings management
- CoinMarketCap API (Cryptocurrency data)
- ExchangeRate-API (Fiat currency rates)
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
You will need the following installed on your computer:
git clone https://github.com/MicLord-4Mb/TopCurrencyPetProject
cd TopCurrencyPetProject- Open a terminal and navigate to the project root directory.
- Create and activate a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
- Install the required Python packages:
pip install fastapi uvicorn aiohttp aiocache pydantic pydantic-settings
- Create a
.envfile in the root directory (wherebackendfolder is located) and add your API keys:CMC_API_KEY=your_coinmarketcap_api_key_here ER_API_KEY=your_exchangerate_api_key_here
- Start the FastAPI server:
The backend will be running at
uvicorn backend.src.main:app --reload
http://localhost:8000.
- Open a new terminal window and navigate to the
frontenddirectory:cd frontend - Install the Node dependencies:
npm install --legacy-peer-deps
- Start the Vite development server:
The frontend will be running at
npm run dev
http://localhost:5173.
MicLord
- GitHub: @MicLord-4MB