Open-source project
mwakidenis/banknet avatar
mwakidenis/banknet

BankNet: A Raspberry Pi Router That Banks Bandwidth for Unstable Links

Capstone – part of a larger project, with code to be used on a Raspberry Pi; not a website.

33 stars0 forksHTMLApache-2.0

At a glance

What is it?
BankNet is a capstone project that turns a Raspberry Pi into a portable micro-ISP, storing internet bandwidth as a local quota and distributing it to clients. The README describes the architecture and commands, but the repository is thin on operational details and has no released code to verify.
Who is it for?
Adopt BankNet if you are a student or hobbyist building a portable router for a capstone or prototype, and you are comfortable filling gaps in the documentation. Do not adopt it for production or for a network where reliability and security are non-negotiable, because the README gives no evidence of testing, no release artifacts, and no operational hardening.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly HTML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 21, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • mwakidenis/banknet33 ★ · +9
Star history
Repository2026-08-232026-10-21
mwakidenis/banknet2433

9 Stars in the last 59 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What BankNet Actually Solves

BankNet addresses a specific problem: how to keep a local network usable when the upstream internet connection is unreliable. The idea is to store bandwidth as a quota, like money in a bank, and then distribute that quota to connected devices. This is useful for remote sites, disaster recovery, or anyone operating a router on a satellite or LTE link that drops out. The README frames it as a portable micro-ISP, inspired by Starlink, but the target user is clearly a developer or student building a capstone project on a Raspberry Pi. The repository is not a website and not a production service. It is a codebase that demonstrates edge networking concepts, and the README is written like a pitch to recruiters rather than a user manual.

The Mechanism: A Bank Engine Between Uplink and Clients

The system flow in the README shows a linear chain: upstream internet goes into an Uplink Manager, then into a Network Bank Engine, then through Traffic Control, then a NAT Router, and finally out to a WiFi Access Point and Ethernet LAN. The bank engine is the novel part. It stores a bandwidth quota, and the Traffic Controller shapes traffic based on that quota. When the bank runs low, a Scheduler automatically reconnects to the upstream to refill it. There is also a manual refill path over Ethernet, which the README calls LAN Refill. This design separates the act of acquiring bandwidth from the act of distributing it. In a normal router, the uplink is always on. In BankNet, the uplink can be intermittent, and the bank smooths over the gaps. The REST API and Web Dashboard sit on top of this, giving an administrator control over the bank status, refill actions, and speed limits.

Getting It Running: Commands and Config Keys

The README gives a straightforward install path. Clone the repository, run npm install, optionally install Python dependencies with pip install -r requirements.txt, then run npm start. Configuration lives in config/config.yaml. The example shows three blocks: wifi with ssid and password, bank with capacity and refill_threshold, and network with max_speed. The capacity is presumably the bandwidth quota in some unit, and refill_threshold is the level at which the scheduler kicks in. The REST API table lists endpoints like GET /api/bank/status, POST /api/bank/refill, and POST /api/bank/speed. The table is truncated in the material, so the full endpoint list is unknown. The commands are simple enough for a Raspberry Pi, but there is no mention of how to set up the Pi itself, whether it needs a specific OS, or how to install iptables and tc. The README assumes a working Linux environment with Node.js already present.

Where the Documentation Goes Silent

The biggest limitation is that the README describes an architecture but gives no evidence that the code works. The repository is marked as a capstone, and the primary language is HTML, which suggests the web dashboard may be the most complete part. There are no release tags, no mention of a demo recording actually being present, and no instructions for testing on a Raspberry Pi beyond the basic start command. The config keys are plausible, but there is no schema for config.yaml, so you cannot know if bank.capacity is in megabits, megabytes, or packets. The battery runtime table (10,000 mAh for 4 to 6 hours) is an estimate with no measurement method. The README also says the demo GIF should be placed at docs/banknet-demo.gif, which implies the demo is not yet in the repository. For an evaluator, this means the project is a design document with some code, not a validated system.

A Real Alternative: OpenWrt with Bandwidth Shaping

If you need a portable router with bandwidth control today, OpenWrt is a mature alternative. It runs on Raspberry Pi and commodity routers, and it has built-in QoS and traffic shaping through its LuCI web interface and the tc command under the hood. The difference in approach is that OpenWrt treats bandwidth as a live resource to be prioritized, not as a stored quota. It does not have a bank engine. You cannot pre-download bandwidth or save up unused capacity. Instead, you set limits and priorities per device or per service. BankNet's concept of banking is genuinely different, but OpenWrt gives you a working, tested router OS with package management and a large community. If your goal is a functional portable hotspot, OpenWrt is the safer choice. If your goal is to explore the banking concept, BankNet is a starting point, but you will need to build the reliability yourself.

Maintenance and License Reality

The repository is licensed under Apache-2.0, which is permissive and allows commercial use, modification, and redistribution, provided you keep the license notice and state changes. That is a positive for adoption, as there are no copyleft obligations. However, the maintenance picture is weak. The last push date is unknown, there are no recent releases, and the project is described as a capstone, which often means it is a one-time effort. The README lists future research directions like mesh networking and peer-to-peer bandwidth exchange, but those are aspirations, not features. Upgrading this project will be your job. You will need to understand the Node.js code, the Linux networking tools it calls, and the YAML config. The requirements.txt suggests some Python tooling, but the README does not explain what it does. For a long-term deployment, you should expect to fork the code and maintain it yourself, or treat it as a reference design rather than a dependency.

The Verdict: A Concept Worth Studying, Not Yet a Router

BankNet's core idea, storing bandwidth as a bankable quota, is interesting and could be useful for satellite or disaster scenarios. The architecture is clear, and the module separation into banking, wifi, nat, scheduler, api, and web is sensible. But the README is promotional, not technical. It says the project demonstrates skills, not that it works. There is no test suite, no deployment guide for the Raspberry Pi hardware, and no release to install. The config example is minimal, and the API table is truncated. If you are evaluating this for a real network, you should treat it as a prototype. Clone it, read the source, and see if the modules actually do what the diagram says. If they do, you have a foundation. If they do not, you have a design document. Either way, do not expect to plug in a battery and get a reliable ISP node. The value is in the concept and the learning, not in the current state of the code.

Editorial conclusion

Adopt BankNet if you are a student or hobbyist building a portable router for a capstone or prototype, and you are comfortable filling gaps in the documentation. Do not adopt it for production or for a network where reliability and security are non-negotiable, because the README gives no evidence of testing, no release artifacts, and no operational hardening. Before using it, verify that the code in the repository actually implements the modules described, check whether the YAML config keys match the code, and test the REST API endpoints on your own hardware. The project is a concept demo, not a finished product, and its value depends on what you add to it.

Frequently asked questions

What does BancNet mean?

The project is BankNet, a portable SIM-less ISP router built around network banking, where internet bandwidth is stored locally as a quota and distributed to connected devices. The banking language refers to that stored quota, not to money.

what is banknet

It is a battery powered portable router that acts as a local ISP node, with a WiFi access point, an Ethernet LAN, a DHCP server and NAT routing. Seven modules cover the work, from the bank engine and scheduler to the REST API and web dashboard.

Where can I withdraw from BancNet?

Nothing in the repository concerns money or withdrawals. The bank holds bandwidth quota, and the REST API exposes status, refill and speed endpoints such as /api/bank/status, /api/bank/refill and /api/bank/speed.

Official sources

  1. Official README
  2. Project repository
  3. README
  4. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mwakidenis-banknet.svg)](https://hysenlabs.com/projects/mwakidenis-banknet)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/mwakidenis-banknet.svg)](https://hysenlabs.com/projects/mwakidenis-banknet)