https://github.com/synonymdev/bitcoin-map
A web application that displays Bitcoin-accepting locations worldwide on an interactive map.
https://github.com/synonymdev/bitcoin-map
Last synced: 10 months ago
JSON representation
A web application that displays Bitcoin-accepting locations worldwide on an interactive map.
- Host: GitHub
- URL: https://github.com/synonymdev/bitcoin-map
- Owner: synonymdev
- License: mit
- Created: 2025-03-02T23:59:20.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-12T19:31:40.000Z (about 1 year ago)
- Last Synced: 2025-06-14T00:54:32.327Z (10 months ago)
- Language: TypeScript
- Homepage: https://btcmap.synonym.to
- Size: 31.9 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# πΊοΈ Bitcoin Map
[](https://opensource.org/licenses/MIT) [](https://nextjs.org/) [](https://nodejs.org/) [](#-running-with-docker-compose) [](https://bitcoin.org/) [](https://github.com/synonymdev/bitcoin-map/actions/workflows/test.yml)
A web application that displays Bitcoin-accepting locations on an interactive map, making it easier for users to find and support businesses that accept Bitcoin.
https://github.com/user-attachments/assets/db6d6971-6577-47c4-b9d8-a9e80b901a93
*Quick demo of Bitcoin Map in action*
## π Getting Started
This project consists of a Next.js frontend and Node.js Express backend. You can run the application using Docker Compose or in development mode.
### π³ Running with Docker Compose
The easiest way to run the entire application in production mode is using Docker Compose:
```bash
# Clone the repository (if you haven't already)
git clone https://github.com/synonymdev/bitcoin-map.git
cd bitcoin-map
# Build and start the containers
docker-compose up --build -d
# To stop the containers
docker-compose down
```
The application will be available at:
- π Frontend: http://localhost:3000
- π Backend API: http://localhost:3001/api
### π» Development Mode
If you want to run the application in development mode, follow these steps:
#### π Backend
```bash
# Navigate to the backend directory
cd backend
# Install dependencies
npm install
# Start the development server
npm run dev
```
The backend server will run at http://localhost:3001.
#### π Frontend
```bash
# Navigate to the frontend directory
cd frontend
# Install dependencies
npm install
# Copy environment variables file
cp .env-sample .env
# Start the development server
npm run dev
```
The frontend application will run at http://localhost:3000.
## π Project Structure
- `frontend/`: Next.js frontend application
- `backend/`: Node.js Express backend API
- `docker-compose.yml`: Docker Compose configuration for running the entire application
## π External APIs
The backend integrates with the following external services:
- **[BTCMap.org](https://btcmap.org/api)**: Provides data on Bitcoin-accepting locations worldwide
- **[Overpass API](https://overpass-api.de/)**: Used to fetch additional geographic and point-of-interest data from OpenStreetMap
These APIs are used to synchronize and maintain our database of Bitcoin-accepting locations.
## β±οΈ Development Progress
### π¨ Frontend
- [x] Interactive map display using Leaflet
- [x] Marker clustering for improved performance
- [x] Bitcoin location markers on the map
- [x] Responsive design
- [x] Location details popup
- [x] Improved popup UI with better styling and organization
- [x] Custom animations for loading states
- [x] User location button for centering map on user's position
- [x] Optimized data loading (coordinates first, details on demand)
- [x] Number animations for statistics
- [ ] Name-based search interface
- [ ] Proximity search UI with radius selector
- [ ] Country leaderboard UI
- [ ] Direct links to OpenStreetMap for adding/editing locations
- [ ] Documentation page
- [ ] About page
### βοΈ Backend
- [x] RESTful API for Bitcoin locations
- [x] SQLite database integration
- [x] Data synchronization system
- [x] CORS configuration for frontend access
- [x] Basic error handling
- [x] Optimized API endpoints (coordinates-only and location details)
- [x] Comprehensive test suite with Jest
- [x] GitHub Actions workflows for testing and coverage
- [ ] Name-based search API endpoint
- [ ] Proximity search implementation using latitude and longitude
- [ ] Country ranking data aggregation
- [ ] API rate limiting implementation
- [ ] API documentation
### π§ DevOps
- [x] Docker and Docker Compose setup
- [x] GitHub Actions workflows for testing
- [x] Test coverage reporting
## π₯ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## π License
This project is licensed under the [MIT LICENSE](LICENSE).