Contracted by: TraceMyFile Ltd
Project: eRight
Overview: A file storage, encryption, tracking, distribution and watermarking system
Project link: www.eright.com
TraceMyFile Ltd a London based digital file forensics company required a web and mobile platform to be created for users to store, share, track, encrypt, and distribute files. They also required the system to be able to have white label and on premise deployment capabilities
We developed the the sales site with user registration and log in to the main platform. The main components of the system were
Siege developed the main dashboard as a single page web application. Files and folders can also be encrypted with AES256 Bit Encryption as well as transferred to other users. The user feel is similar to using a desktop file browser with users able to drag and drop, navigate in and out of folders and cut/copy/paste.
We created a watermarking component that has text and image watermarking capability all within the browser. There is also an invisible watermarking capability that tags files with a unique eRight ID that can be used by our web crawler to identify the image usage on the internet
Native iOS and Android applications were created to enable users to manage their files from the mobile devices
The system is built with a micro services architecture with each component using the best technology suitable for the task
Authentication
Central auth service is a Django application. This is where all services authenticate the user
Core API
This is another Django application using the Django Rest framework for the API endpoints. This service sits behind a load balancer. All servers connect via SSL to a Redis cache server
File service
Files are streamed to Amazon S3 storage via a service written in golang. This is deployed as an AWS Lambda function. The service also live streams multi file downloads to zip files for users
Watermarking
The image water marker is an endpoint written purely in python. The invisible watermarking is written in C++. e use BOOST to bind the C++ library to a Python
Delayed Tasks
Delayed tasks are run using Celery with a RabbitMQ broker. Task processors sit on their own server and are scalable.
Dashboard
The dashboard is written in Typescript and is a pure Angular (Angular 2) application served behind cloud front.
Mobile apps
Mobile applications are written in device specific native languages. The iOS app is written in Swift. The Android application is written in Java.
February 12, 2017
File Mangement