CloudLockr is an innovative data storage system, tieing your digital data to a physical location while providing secure remote backup storage. The five strong layers of protection CloudLockr offers ensures your data is never compromised or read by anyone else, including us.
This repo contains the Android application facilitating the CloudLockr device user interface. This codebase features custom bluetooth communication protocols, location services, API integration, file reconstruction, and user management.
![]() |
![]() |
![]() |
![]() |
yarn install
(if you have not already)yarn start
yarn android
yarn install
(if you have not already)yarn start
yarn android
Execute yarn test
to run the entire test suite (UI and service logic tests). Verbose results are enabled by default for result clarity.
mocking.deviceConnection = true
in src/Config/index.js
, and follow the above simulation step.Note that throughout the project @/
is used in import statements and translates to src
(to enhance code readability). Also note that index.js
files are used throughout the project to simplify imports and provide a defined interface to a given directory. The general concept of the directory structure is to separate logic from UI components, enhancing testability and modularity.
__tests__
(Jest unit/integration/UI tests)src
(source code)
Assets
(resources used throughout code. Assets are imported in Theme
and usable through there. Do not import assets directly from here in the UI)Components
Config
(constant application variables)Containers
(top level containers for UI views)Modals
(special containers for pop-up modals views)Navigators
(app view navigation handling)Services
(complex logic, any computations)Device
(services related to device interaction)External
(services using other external phone APIs)FileSystem
(services related to local phone file system or file manipulation)FileTransfer
(top-level services that facilitate complex file transfer processes)Server
(services related to server interaction)Store
(Redux interaction, further broken up by Redux slice indicated by each sub-directory)Theme
(options effecting style, including assets, fonts, and colours. Import useTheme()
method in UI to access theme data)