Uke-Messaging / uke

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Uke Protocol Messaging App - Ionic 6

⚠️ WARNING: This is a PoC repo, not meant for production in any way, and requires a lot more work to be considered viable at the moment.

Netlify Status

The Uke Protocol is a p2p, completely distributed messaging protocol.

How Uke Messages are transported and stored.

This implementation shows how one can use it to build a realtime chat app using nothing but blockchain technology.

It utilizes local cryptography and a Substrate blockchain instance to verify, send, and receive messages in real time. One can create users, create new conversations with them, and send them messages.

Building

⚠️ At this time, only the web version is deemed totally stable.

It's best to have Ionic installed for this step, which is installable via npm. This is a Capacitor project, meaning it's capable of producing multiple types of builds:

npm install -g @ionic/cli

To build for web, run the following:

# install dependencies
npm install
npm run build

You can then use the www/ directory to deploy wherever.

iOS and Android

For Android, ensure you have Android Studio installed on your system:

# install dependencies
npm install
ionic capacitor build android

For iOS, make sure you have Xcode and CocoaPods installed on your system:

# if you don't have CocoaPods:
sudo gem install cocoapods
# install dependencies
npm install
ionic capacitor build ios

Using

Right now, the app is live at https://app.uke.chat - however, keep in mind it's an experimental server that is subject to resets and some instability.

The Substrate node instance is hosted at node.uke.chat.

Testing

Testing locally, clone the repo and run the following:

# install dependencies
npm install
npm test

To test with docker, build the included image:

docker build -t uke-test .

Running

To serve the app locally for development purposes, clone it and run the following:

npm install
ionic serve

About

License:Apache License 2.0


Languages

Language:TypeScript 82.9%Language:SCSS 7.5%Language:HTML 6.6%Language:JavaScript 2.8%Language:Dockerfile 0.2%