Skip to content

humaidk2/StorIt

 
 

Repository files navigation

Table of Contents

  1. Storit
    1. Overview
    2. Usage
  2. Development
    1. Storit-Client
    2. Storit-Firebase
    3. Storit-Server
    4. Storit-Tracker
    5. Libraries
    6. Goals&Accomplishments
  3. Team

Storit

storit logo -cloud

Storit is a peer to peer distributed cloud storage mobile application.
Available on Android and IOS.
The application is not currently live.

Storit intro poster: store user data on other user's devices

Overview

Storit provides an alternate cloud storage platform to help reduce e-waste by utilizing existing mobile devices storage medium. Storit users can choose to run their device as servers and earn some currency. Users can also pay the monthly fee and gain access to reliable and secure cloud storage.

Usage

Download the application from the app store. C

Development

The storit architecture is broken into 4 major components:

  • Client (Android/IOS)
  • Server (Android/IOS)
  • Tracker (Backend-api)
  • Firebase (Database/Authentication)

This repo corresponds to Android portion of the client/server component

Storit-Client

The client is built using android and ios. The client handles authentication using firebase auth by retrieving a token from firebase and passing it with each request. The client also gives user access to files and folders stored in storit storage. The client also performs file splitting, encryption, and transfer. On the other hand, it also performs file retrieval, sorting, merging, decryption.

Storit-Firebase

Firebase api is used to authenticate users either through a local strategy or through google strategy, providing a verifiable token on successful auth. Firebase is also responsible for storing user and file data in a NOSQL database.

Storit-Server

The server is built using android and ios. The server constantly runs a server in the background of the device. It also handles chunk storage and retrieval. It uses static file storage allocation by allocating an large file of devised storage and reduces the file size upon receiving a new file chunk.

Storit-Tracker

The tracker is responsible for deciding the number of chunks an their location for each file. The tracker also tracks where all chunks are located.

Libraries

Storit uses the following libraries:

  • Android - used to develop android version of mobile application
  • Swift - used to develop ios version of mobile application
  • Firebase - used for local and google authentication
  • Firestore - used to store user/file data in NOSQL database
  • Nodejs - used to program in javascript with v8 javascript engine
  • Express - used to develop tracker server and handle socket requests
  • MYSQL - used to track server information
  • socket.io - used to set up peer to peer connection and communicate with tracker
  • Webrtc - used to form peer to peer connections and transfer file chunks over data channel
  • Git - used to collaborate manage application versions

Goals&Accomplishments

  • Brainstorming of ideas
  • Propose ideas
  • Feasibility study
  • Required document
  • Design document
  • Complete tracker server
  • Network of app (iOS & Android) and File Splitting
  • Deploy Tracker
  • Authentication and file storage using Firebase
  • Integration of UI/UX, tracker, and Networking
  • Simple file sharing app (for POC)
  • Updated design document
  • UI/UX of app (iOS & Android)
  • Functional Test
  • User Acceptance Test
  • Smart algorithm for server selection
  • File structure of files
  • Encryption of files (iOS & Android)
  • Backup file chunks
  • Update reports and test results

Team

  • Team Leader: Humaid Khan
  • Team Scribe: Fidel Lim
  • Development Team Members: Fidel Lim, Humaid Khan, Mahmoud Elmohtaseb

About

peer to peer file storage application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%