From our blog
 

software technologies we use

CrowdGuard beta version

First release: 15.10.2015

Mobile app

Programming language: Java

  • very portable
  • industry strength code
  • framework independent

SDK: Android Studio

Libraries

  • Network calls optimisation
  • Mobile battery optimisation
  • Smack for XMPP chat integration
  • Volley for network calls
  • Facebook SDK
  • Gmail SDK
  • GCM push notifications engine

Server infrastructure

XMPP Jabber server for IRC

PHP for web services

Laravel framework v4.1 for backend logics

Following MVC architecture

MySql database

SSL certificate enabled

CrowdGuard alpha version

First release: 15.03.2014

Mobile app

Programming language: C++

  • ISO C++ 1998 in particular due to MoSync’s GCC v3.4.6 compiler
  • some features of ISO C++ 2011 when using Qt library
  • very portable
  • industry strength code
  • framework independent, options include:

MoSync framework

  • using “NativeUI” GUIs which use the look & feel of the respective platform on Android, iOS and Windows Phone 7
  • can target hundreds of pre-smartphone technology devices (requires some adaption re: map gfx & low-res layout, only sensible if device is GPS equipped)

Qt5 from Digia (formely: Nokia)

  • In addition to Android, iOS and Windows Phone, it is also able to target Blackberry and some other “feature phones”

  • Provides a desktop build of CrowdGuard, for evaluation and administration purposes

Rigorous non-bloat strategy

  • apart from the framework, no additional libraries in use
  • prevents technology transition problems (SDKs and mobile devices evolving fast)
  • aimed at code base longevity (should still compile with compilers and SDK in 15+ years)
  • portable to dedicated embedded devices (i.e.: without an OS)

Server infrastructure

C programming language according to ISO/IEC 9899:1999

  • highly portable (Linux, Windows, Mac, Android)
  • 64 bit ready

‘cgircd’ — an IRC server implementation written from scratch in early 2000s

  • inspired from studies of ircd-hybrid (EFnet)
  • not widely used, but tested in simulated high-throughput and denial-of-service scenarios
  • Client-logic all implemented as modules (re-)loadable at runtime, functionality can be extended while the server is running
  • LGPL license, allowing for proprietary modules
  • IRC protocoll, baseline RFC1459 protocol
  • Protocoll extensions:

TLS encryption of client-server and server-server connections using OpenSSL

Timestamped channels, preventing from takeover and de-sync’s between servers

Comparison/Partitioning of base32-encoded Geohashes (geohash.org)

Built-in socket filtering using either Linux Socket Filtering or Berkley Packet Filter (BPF), for access control in response to flooding/flagging (basically a built-in dynamic firewall)

  • User authentication:

Database independent textual protocol

Via a helper daemon called “servauth”, to direct database load away from the realtime geolocation processing in the server

can be compiled as either SQLite, MySQL/MariaDB or PostgreSQL backed

leaves it open to switch to a non-SQL database technology when needed

Want to join our tech team? Please get in touch with us.