Difference between revisions of "SafeCode"

From Hackstrich
Line 2: Line 2:
  
 
= Project Status =
 
= Project Status =
 +
* 2013-06-02: Started writing software. Frontend now loads and connects to the web service, as does the backend daemon. Still have some cleanup/reliability improvements to do, but basic functionality is there (minus hardware interfacing).
 
* 2013-06-01: Started thinking about/planning.
 
* 2013-06-01: Started thinking about/planning.
  

Revision as of 01:48, 3 June 2013

SafeCode is a software/hardware solution to handle digital safe-calls for independent in-call sex work.

Project Status

  • 2013-06-02: Started writing software. Frontend now loads and connects to the web service, as does the backend daemon. Still have some cleanup/reliability improvements to do, but basic functionality is there (minus hardware interfacing).
  • 2013-06-01: Started thinking about/planning.

Hardware

  • Small/portable box
  • Rugged design, as it will be thrown in bags/traveled with constantly
  • USB connected/powered
  • Keypad on top to enter data (Storm 6000-21001, telephone-style 12 key + Cancel, Clear, Help, Enter)
  • Lighting to provide feedback for "entry received" and such
  • Beeper for indicating exceeding check-in time without checking in

Software

  • Daemon that runs on the local machine talking to the SafeCode box
  • Web service that runs on an outside server that reports status to others
  • Keepalives between all components to indicate that a connection was broken

Web Service Architecture

  • Sinatra-based daemon
  • Accepts WebSocket connections from the daemon talking to the SafeCode box and monitors to ensure that connection stays open and that keepalives are being received
  • Serves web pages & uses WebSockets to update status in real-time for anyone monitoring
  • Keeps state of:
    • Current geographical location
    • Connectivity to daemon
    • Daemon's connectivity to the SafeCode box
    • Session state
      • Not in session
      • Client arrived, no check-in yet
      • Check-in OK, in session
      • Check-in non-OK, in session
    • Time of next expected check-in (if in session)