2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00
2026-05-22 09:58:02 +02:00

Contributors Forks Stargazers Issues MIT License LinkedIn


Phonendo

Phonendo is a platform consisting of several software services that manages the entire data lifecycle from wearable device data collection to publishing them on IOTA.

Phonendo is published on Wireless Networks https://link.springer.com/article/10.1007/s11276-023-03458-7 and can be cited:

Moya, F., Quesada, F.J., Martínez, L. et al. 
Phonendo: a platform for publishing wearable data on distributed ledger technologies. 
Wireless Netw (2023). 
https://doi.org/10.1007/s11276-023-03458-7


View Demo · Report Bug / Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License

About The Project

Phonendo

The Phonendo architecture adopts a microservice event-driven approach, consisting of five key components: Reader, Manager, Storage, Verifier, and Publisher. The diagram below depicts the interconnectedness of these components and highlights their primary functions. This architectural design prioritizes flexibility, scalability, and adaptability across various applications.

To facilitate rapid prototyping and leverage the extensive support within the developer community, we opted for the Node.js framework and JavaScript programming language in the development of Phonendo. HTTP was chosen as the communication protocol due to its simplicity in facilitating seamless data transfer between services.

During the implementation phase, we employed the Pine Time smartwatch (available at https://www.pine64.org/pinetime/) as a reference device. This choice allowed us to ensure compatibility and evaluate the integration of Phonendo with a real-world wearable device. By doing so, we were able to validate the platform's functionality and its capacity to handle data from smartwatches, which are commonly used in healthcare and fitness applications.

It is essential to acknowledge that the current implementation of Phonendo serves as a foundation for further research and development. As we continue refining the platform and exploring additional use cases, we anticipate introducing enhancements and optimizations based on empirical experimentation and user feedback.

Getting Started

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • npm

    npm install npm@latest -g
    
  • pm2

    npm install -g pm2
    

Installation

  1. Clone the repo
    git clone https://github.com/sinbad2-ujaen/phonendo.git
    
  2. Install NPM packages
    npm install
    
  3. Start project
    npm run infra:up
    

Usage

  • To start the project
    npm run infra:up
    
  • To stop the project
    npm run infra:down
    
  • To clean all resources
    npm run infra:clean
    
  • To restart all services
    npm run infra:restart
    

Once all services are up, next step is to register a device using the Reader endpoint

curl --location 'http://127.0.0.1:3003/register' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'device=XXXXXXXXXX' \ --data-urlencode 'serialNumber=XXX' \ --data-urlencode 'deviceType=SMARTWATCH'

Once the device is registered, Phonendo will automatically detect, connect and start listening events. In particular, it captures heartbeat events.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.

S
Description
Phonendo is a platform consisting of several software services that manages the entire data lifecycle from wearable device data collection to publishing them on IOTA.
Readme 36 MiB
Languages
JavaScript 95.5%
Shell 4.5%