Current Process
- Users use dropbox to hold the content files and deliverables.
- They use mail, IMs for communication channel.
- When multiple people are working on the project, its hard to maintain who is working on what.
- No scope of getting business reports.
- No scope of tracking the progress of project.
- The whole process is cumbersome and time taking
Requirement
- Platform which can provide work-flow on the process of transcription of court hearings.
- Platform which provides all at one place.
- Platform should be easy to extend or modify as requirements are constantly changing in the market.
- Platform which serves heavy concurrent upload and download of content.
- Platform should be good in performance.
- Platform first launch should go with in 5 months.
Challenges
- Client was not very sure of workflows to be setup in the system
- Tight deadline for the product launch.
- The question whether using Drupal for product will speed up the development process and keep it extendible.
- Our competitors were Dropbox, Google Drive.
Discovery Phase
- Srijan suggested client to start with discovery phase where we would do rapid prototypes to get closure on requirements.
- We opted angular js for routing and simple html and css
- http://protoapp.therecordxchange.net/#/
Benefit of Discovery Phase
Till we reach end of discovery phase
- It helped the client in getting feedback from end user and helped them in raising funds.
- Client was more clear with requirements
- Our backlog was ready and our team estimated the entire backlog with agile methodology using planning poker.
- The complete project estimated to 5-6 months from which with help of client we picked the bare minimum components which can be accommodated in time line of 3 months.
- It helped in getting closure on design screens and also helped us in deciding what modules can be used in early stage of module.
Actual Development Cycle
- We decided the arhitecture to have least dependency on Drupal, so that in future Drupal can be easily replace with nay other technology if needed.
- We decided to use Drupal as a bridging component among various other technologies.
- We landed up on architecture as
Architecture
Why MongoDB
- The main content in TRX can be defined under 3 entities
1. Project Entity.
2. Turns Entity.
3. Audio/Docs attached to a project
- Fetching a project means multiple database table joins which causes costly database transactions and degrade performance while no-relational and flat database nature of mongo helped us in performance effective way to fetch data
- Also we have hard delete and soft delete functionality coming with help of mongo database.
Download Architecture
1. Download Request
2
3
4. Write message in queue
6. Queue read by nodejs process
7. message is posted to php lib via ajax req
socket.io
Basic Workflow
- People with user account on TRX can create projects, upload the content, divide the content by creating turns and assign turns to transcribers and these turns get further assigned to proof readers, once each transcript and proof reading turn is completed, the project can be marked as completed, and during the complete cycle a project can be various status to keep track of progress.
Feature Highlight
- Project and Turns work-flow
- Connections
- Search
- Notifications and Email
- Reports
Project and Turn Workflow
DEMO
Connections
DEMO
Notifications and Email
DEMO
Search
Demo
- Search through projects, turns, connections
Reports
1. Reports at user level
- Active Turn Report
- Completed Turn Report
- Active Project Report
- Completed Project Report
2. Reports at admin level
- Connection Report
- Coupon Report
- No Connection Report
- Project Report
- Turn Report
- Users Report
Analytics
1. Google Analytics
2. Mix Panel
Revenue Model
- Subscription based model.
-- Enterprise Plan
-- Business Plan
-- Basic User.
- Transaction based model.
-- Drupal will be central point
-- storefront will be built around Drupal.
High Availability and Performance
- We use new relic, xhprof and blackfire for performance measurement.
- For High availability we are running two web servers behind the load balancer.
- We are using mongolabs for our mongo hosting which provides fail over mechanism via replica set.
- We have configured alert notification for disk size, CPU processing.
- We are using pingdom to have a check of every minute.
- We have setup custom scripts to take database back at every 4 hour.
TRX
By Arpit Rastogi
TRX
- 1,248