Admin backend for any bitcoin-native or swarm organization
C# ASP JavaScript XSLT CSS HTML Other
Permalink
Failed to load latest commit information.
.nuget More tweaks for VS2015 Nov 12, 2016
Backend
Basic Replaced all DateTime.MinValue with Constants.DateTimeLow Jan 16, 2017
Boneyard Yet more cleanup Nov 12, 2016
BuildFiles Added dependency on 'dialog' (should have been there already) Jan 26, 2017
Common
Console Replaced all DateTime.MinValue with Constants.DateTimeLow Jan 16, 2017
Database Replaced all DateTime.MinValue with Constants.DateTimeLow Jan 16, 2017
External Libraries More packages moved/upgraded Nov 12, 2016
FrontSocket Debug: Testing pipeline from backend to client Feb 18, 2017
Interface REFACTOR: Renamed a bunch of 'Membership' to 'Participation' Jan 2, 2017
Logic Debugging: is there a data tx problem? Feb 18, 2017
Site
Tests Another attempt buildable VS2015 Nov 12, 2016
Utility
.gitignore Added old site to .gitignore Dec 13, 2016
.gitmodules Added submodule: NBitcoin Oct 27, 2014
CONTRIBUTORS Resigned PDAFFIRM Oct 27, 2014
LICENSE-PUBLIC-DOMAIN Slight clarification to lack of warranty Feb 18, 2015
LINESOFCODE Sprint build Orange-9 Jan 5, 2017
PDAFFIRM Resigned PDAFFIRM Oct 27, 2014
README.md Removed obsolete warning in README Apr 4, 2016
Swarmops Roadmap.odt Added automation of loc files transmission Oct 10, 2014
Swarmops.FxCop Fixed FxCop settings Jun 16, 2013
Swarmops.sln Added Frontend Socket project Jan 11, 2017
VERSION

README.md

Swarmops

Swarmops is a necessary tool to enable any bitcoin-native or decentralized gamechanger.

Swarmops is an admin system for swarm-type organizations. It's a bureaucracy system for people who thoroughly dislike bureaucracy, so it removes all visibility of it and focuses on the ops aspects. It manages decentralized authority, volunteers, members, activists, budgets, mass communications, expenses, payroll, invoices, and complete financials/bookkeeping.

The goals of Swarmops are three:

  • Become the #1 software for organizing swarm activism to effectively change policy,
  • Become the #1 software to manage native-bitcoin startups' cashflow and accounting,
  • Become the #1 software to run civil liberties resistances in repressive regimes.

Goal #1, organizing swarm activism: the Swedish Pirate Party used a predecessor to Swarmops in its effort to put two representatives in the European Parliament, and could literally not have succeeded without the ability to decentralize authority that Swarmops provided, pushing all the crucial decision-making out to the edges of the organization where the most information was available. It's an administration tool for people who hate paperwork, so it's built to optimize the time available to activism.

Goal #2, the primary back-end software for bitcoin-native unbanked startups: Swarmops does bookkeeping and accounting on fully automatic. Today, there are no services or packages for bitcoin-native and unbanked organizations – for startups which are unbanked by choice. Swarmops seeks to fill that role and provide automatic accounting and cashflow management for such organizations, maintaining hot and cold wallets along with automated invoice and payroll processing. (Imagine invoices being paid on fully automatic, and not needing a €100,000 software package and a fifteen-page bank contract to do so.) There is a huge void to fill here, and Swarmops fills this role in addition to all other back-end management.

Goal #3, functional software to assist civil liberties resistances in repressive regimes: With the swarm functions and the bitcoin-native cash flow in place, a “hidden branch” of organizations can be enabled, where nobody knows the identities of other people in the organization's “hidden branch” swarm except those closest to that individual, but where everybody is still working toward a common goal. Recruiting would take place face-to-face using mobile phones and BitID, and code names would be used for all other purposes. In this way, Swarmops enables large-scale change while able to protect the individuals involved in making that change come about. Lack of information even at the central level provides deniability against rubberhose attacks.

Release schedule

Stable releases are built every six months, at the end of every calendar half-year. Sprints are built every two weeks. Internal builds are built all the time and can be tested at http://dev.swarmops.com/ which doesn't require a login.

Installation

If you're daring enough to install a pilot of Swarmops, you're most welcome to do so. It's built for and tested on Ubuntu (Trusty+) or Debian (Wheezy+) servers. If you're running Debian Wheezy, you'll first need to upgrade Mono as instructed on this page or Swarmops won't run. Then, run these commands as root - first, fetch the signing key for the repository:

wget -qO- http://packages.swarmops.com/swarmops-packages.gpg.key | apt-key add -

Then, add the Swarmops repository to your list of software sources:

echo deb http://packages.swarmops.com/ squeeze contrib > /etc/apt/sources.list.d/swarmops.list

Then, run this to install the Swarmops frontend:

apt-get update; apt-get install swarmops-frontend

If you installed onto a clean server, Swarmops will offer to configure Apache to use Swarmops as the default site. If you decline this offer, you can still enable the site by an a2ensite swarmops as a suggested configuration is provided. If you prefer to configure this entirely manually, install a new Virtual Host in Apache, a Mono host, pointing at /usr/share/swarmops/frontend as its directory. We're using /usr/bin/mod-mono-server4 as our server. Note the 4 at the end; many configurators are old and will set a 2 there. See /etc/apache2/sites-available/swarmops.conf for a template file.

Navigate to the new site and continue installation from the running site.

The packages named as listed above (swarmops-frontend) are the sprint packages, released every two weeks. If you prefer, you can opt for the development builds (swarmops-frontend-internal) or the stable six-month releases (swarmops-frontend-stable) instead. The development builds aren't really recommended unless you're actively contributing to development and want to see new changes running on the development sandbox.

Contributing

No permission necessary, really. Just check in code. The backend is ASP.Net/C# and the frontend (where most of the development happens) is Javascript and jQuery. But if you want to see what's being worked on, feel free to get an account at http://scrum.pirateacademy.eu and join the Swarmops project, and grab tasks from the master list.

Let's take that again, because it's important: about 90% of development happens in JavaScript and jQuery, so don't shy away because it looks like a C# backend.

There's also a Facebook group named Swarmops Developers which you may want to join. Yes, Facebook is evil, so give me a better alternative. Until there is one, that's where discussions happen.

License

No, there isn't a "license". This code is completely in the public domain, with the exception of external libraries used. Those are marked as such. In jurisdictions where public domain doesn't exist as a legal concept, the code is under the CC-0 (Creative Commons Zero) license.

That also means that any code you commit to Swarmops, whether by checking in code to this repository or by doing so to forks and then pushing code back here, is irrevocably committed to the public domain.