Bitcoin Explorer is a full-stack application that provides historical Bitcoin price data and analysis. It consists of a React frontend, a TypeScript backend, a Rust data extractor, and a PostgreSQL database.
The project is composed of four main components:
- Frontend (React)
- Backend (TypeScript)
- Data Extractor (Rust)
- Database (PostgreSQL)
- Docker
- Docker Compose
- Rust (for local development of the extractor)
The project consists of three main components:
-
Data Ingestion (Rust): Continuously fetches Bitcoin data and stores it in PostgreSQL.
-
Backend (Typescript): Serves data from PostgreSQL to the frontend via a RESTful API.
-
Frontend (React): Presents data in an interactive, user-friendly interface.
To run the entire application stack:
- Clone the repository:
git clone https://github.com/yourusername/bitcoin-explorer.git
cd bitcoin-explorer
- Start the services using Docker Compose:
docker-compose up --build
- Access the application at
http://localhost:3000
- Built with React
- Located in the
./frontenddirectory - Provides a user interface for viewing Bitcoin price data and analysis
To run the frontend locally:
cd frontend
npm install
npm start
- Built with TypeScript
- Located in the
./backenddirectory - Provides API endpoints for the frontend to fetch data
To run the backend locally:
cd backend
npm install
npm run dev
- Built with Rust
- Located in the
./rust_extractordirectory - Extracts Bitcoin price data and stores it in the database
To run the extractor locally:
cd rust_extractor
cargo run
- PostgreSQL database
- Stores historical Bitcoin price data
GET /api/historical: Fetches historical Bitcoin price data- [Add other endpoints as necessary]
The docker-compose.yml file defines the following services:
frontend: React frontend applicationbackend: TypeScript backend APIextractor: Rust data extractordb: PostgreSQL database
DATABASE_URL: PostgreSQL connection string (used by backend and extractor)PORT: Port for the backend service (default: 3002)
If you encounter issues with service connectivity:
- Ensure all services are running:
docker-compose ps - Check service logs:
docker-compose logs [service_name] - Verify network connectivity between services
- Ensure the backend API is correctly configured to handle CORS
- Sumanayana Konda
- Akshatha Patil
- Ruthwik Bommenahalli Gowda
