8000 GitHub - Unbanked0/bank_exit: Website and Map for Monero mass adoption with Bitcoin merchants - tutorials, tools and strategy by Bank-Exit voluntary collective
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Website and Map for Monero mass adoption with Bitcoin merchants - tutorials, tools and strategy by Bank-Exit voluntary collective

License

Notifications You must be signed in to change notification settings

Unbanked0/bank_exit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bank-Exit

A voluntary, non-partisan collective whose aim is to offer legal, peaceful and sovereign tools to as many citizens as possible, to enable banking emancipation and resilience.

Bank-Exit logo Logo Sortie de Banque

πŸ“Œ Table of Contents

✨ Features

  • Interactive map of merchants accepting Bitcoin, Monero, and Δ 1 (June)
  • Directory of professionals who accept these cryptocurrencies
  • Dedicated Pro Space to assist businesses in offering crypto payments in-store
  • Blog and tutorials section to educate users and merchants

🧰 Tech Stack

πŸ› οΈ Backend

  • Ruby on Rails 8 β€” Full-stack web framework optimized for productivity.
  • Solid Queue β€” Active Job adapter using the database as a durable queue backend.
  • Solid Cable β€” Action Cable adapter backed by the database.
  • Solid Cache β€” In-database caching engine integrated with Rails.

πŸ—„οΈ Database

  • SQLite β€” Lightweight, serverless SQL database.

πŸ–₯️ Frontend

  • Hotwire β€” Modern HTML-over-the-wire framework for reactive UIs.
    • Turbo β€” Speeds up navigation and updates without full page reloads.
    • Stimulus β€” Lightweight JavaScript framework to enhance HTML behavior.
  • Importmap β€” Load JavaScript modules directly in the browser, no bundler required.
  • Slim β€” Lightweight templating engine with clean syntax.
  • DaisyUI β€” Tailwind CSS component library for building UI elements quickly.

πŸš€ Deployment

  • Kamal β€” Lightweight Docker-based deployment tool maintained by the Rails team.

πŸ§ͺ Testing

  • RSpec β€” Behavior-driven development testing framework for Ruby and Rails.

🧹 Other Tools

  • Rubocop β€” Ruby code linter and formatter following community conventions.

βš™οΈ Getting Started

Prerequisites

  • Ruby >= 3.4.4
    Recommended installation method: mise β€” a minimal, fast, and dependable Ruby installer.
    See the official Rails guide for details: Installing Ruby on Rails

  • SQLite 3

Installation

$ git clone https://github.com/Unbanked0/bank_exit
$ cd bank_exit

$ bin/setup

Tip

Website is now ready to be accessed at http://localhost:3000 ! πŸŽ‰

To initially populate the database with merchants data, run the command in a Rails console:

❯ bin/rails console
bank-exit(dev)> FetchMerchants.call

Warning

This process would take few hours because an individual geocoding call is involved for each row to get the country code.
To speed up process, comment the Merchants::AssignCountry.call in the FetchMerchants service to skip the country data.

πŸ’» Available Commands

  • bin/dev – Start processes defined in Procfile (web and css)
  • bin/rails server – Start the Rails server only
  • bin/rails db:migrate – Run migrations to database
  • bin/rails sitemap:refresh:no_ping – Regenerate the sitemap
  • bundle exec chusaku – Annotate Rails controllers with route info

πŸͺ Merchant Data

Merchant data that populate the map are retrieved dynamically from the Overpass API.

A recurring task, managed by SolidQueue, runs every 6 hours to automatically refresh merchants data. A manual refresh button is still possible in the maps#index page.

🧭 Map Routing

Itinerary is calculated by the OSRM Routing API that detects the fastest way by car.

Adresses autocomplete are fetched from the Nominatim API through the geocoder gem.

🌐 Internationalization

Refer to the Wiki article to add or update a new locale.

πŸŽ“ Tutorials

Refer to the Wiki article to add or update a tutorial article.

πŸ–ΌοΈ Assets and Media

  • Background images are coming from Unsplash.
  • SVG icons are taken from Lucide icons.
  • Map markers are extracted from spritesheet.svg.
  • Contact brands icons are coming from official website or Wikipedia.

πŸ§ͺ Running Tests

Before submitting any changes, please ensure the test suite passes:

$ bin/rspec

🀝 Contributing

We welcome contributions!

  • Please read CONTRIBUTING.md before submitting a pull request.
  • Look for issues labeled good first issue or help wanted.

πŸ“„ License

This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3). See the LICENSE file for the full license text and details.

The AGPLv3 license ensures that the source code and any modifications remain open and that users interacting with the software over a network can receive the source code.

0