Sabishare.com - File hosting/sharing platform

Sabishare is a robust file sharing and hosting file hosting platform built using modern performant technologies across the stack.

Sabishare.com - File hosting/sharing platform

1.0 Overview

  • Client industry: File Hosting
  • Project Lifespan: 3 Months

2.0 Background

The customer is in need of a robust file sharing platform that can scale easily. Initial capacity of about 500k combined file serving (streaming + downloads) per day.

3.0 Scopes

  • Database For high performance and scalability reasons, a database that can horizontally scale was employed.
  • Application Programming Interface (API) The API will be the focal point of the entire system. The software deployed is horizontally scalable to allow for request processing to be distributed. Scalability and performance are the strongest points with technologies employed for the various services. Including the highly-scalable document-oriented database system, MongoDB; extremely fast in-memory cache store, Redis; scalable search engine, Elasticsearch; high performance analytics database, ClickHouse.
  • Content Delivery Platform (CDP) The CDP manages the thumbnails and waveform of the media files uploaded.
  • Dashboard (User and Admin) For a better user experience (UX), the dashboard features a Server Side Rendered (SSR) Progressive Web App (PWA).
  • Node Clusters The system employs a clustering system for its file-serving nodes. Every cluster is defined by its criteria, e.g. time-based (old/new files with defined delimiter), activity-based (least/most accessed within a specified time-range). A cluster has 1 primary and as many secondaries as possible. The primary node receives file uploads from users (or other primary when a cluster change is triggered by the cluster's defining-criteria); at the same time, they double as managers for all of their secondaries. Secondary nodes synchronize with the primaries when any sync triggering event (create, update, delete) is fired. This clustering system ensures proper load balancing among the entire nodes of the system.
  • Grouping The system should works with a grouping system such that a user's allowed resources are defined by their predetermined group. The default group is set by the administrator and can be changed after setup.
  • Account Sharing The system supports inviting other users to manage a user's profile with a per-user access control system. E.g. User-A can invite User-B to their profile such that if accepted, upon login, User-B can switch to User-A's profile without explicitly knowing User-A's password and can only view, update and create items specifically granted by them by User-A.

4.0 Technologies

  • Software Architecture: Micro services
  • Services
    • MongoDB (Database)
    • Redis (Cache Store)
    • ClickHouse (Analytics database)
    • Elasticsearch (Full-text search engine)
  • Languages:
    • Front end: HTML, JavaScript (VueJs/NuxtJs), CSS
    • Back end: PHP (with Swoole for Corountine/Async processing), Bash

5.0 Core Features

5.1 Content

  • API
    • Node monitoring
    • Download/stream management
    • User
      • Files management
      • Folder management
      • Analytics management
      • Account sharing management
      • Search engine management
    • Administrator
      • Files management
      • Folders management
      • Analytics management
      • Group management
      • User management
      • Cluster management
      • Nodes management
  • Dashboard
    • User
      • Files dashboard
      • Folder dashboard
      • Search dashboard
      • Intuitive analytics dashboard
      • Media Players (Audio and Video)
      • Account sharing dashboard
    • Administrator
      • Files dashboard
      • Folders dashboard
      • Analytics dashboard
      • Group dashboard
      • User dashboard
      • Cluster/Nodes dashboard
  • Nodes
    • File management
    • Secondary node management
    • Primary -> Secondary node sync management
    • Thumbnail and Waveform generation system
    • File serving system
  • Content Delivery Platform
    • Thumbnail management
    • Waveform management

5.2 User Experience

  • Modern design
  • Light and Dark themes
  • Intuitive navigation
  • Mobile responsiveness
  • Fast loading speed
  • SEO friendly pages

6.0 Key Benefits

  • Visually appealing and brand-focused design
  • Robust, fast and efficient software
  • Horizontally scalable software with potential to handle as many users as the platform can accumulate.

7.0 Conclusion

The project was delivered and implemented on schedule and actively being maintained by Greentical Solutions. See website.