-
Notifications
You must be signed in to change notification settings - Fork 9
Solution Design
See Git commit history
Zapp.ie is a rewards and recognition tool developed by Evo Labs. It leverages Bitcoin Lightning Network technology to offer micro-Bitcoin rewards (called Zaps) within Microsoft Teams. The tool integrates with Microsoft Teams, providing seamless interactions for team members to send and receive Zaps for team contributions and engagement.
The solution also incorporates AI features with an AI Copilot bot, which helps automate notifications, reminders, and personalized engagement messages.
This document describes the complete technical solution for Zapp.ie, not limited to the MVP. It will evolve as new features and phases are added. The goal is to provide a flexible, scalable platform that enhances team engagement and recognition using cryptocurrency rewards.
The purpose of this document is to serve as a live and evolving blueprint for the technical design and architecture of Zapp.ie. It outlines the architectural components, data model, security, and deployment strategy. This document should be updated continuously as the system evolves with new features and technologies.
Acronym | Definition |
---|---|
Zaps | Micro-Bitcoin rewards |
LNBits | Lightning Network wallet and account management system |
MVP | Minimum Viable Product |
AI | Artificial Intelligence |
ALM | Application Lifecycle Management |
UAT | User Acceptance Testing |
The Zapp.ie solution leverages multiple technologies:
- Microsoft Teams for user interface and interaction.
- Bot Framework for implementing the AI Copilot, which interacts with users.
- React App for rendering UI components such as Zaps sent, leaderboard, and user balance.
- LNBits to manage Bitcoin Lightning Network transactions.
- Azure Cloud to handle hosting, scalability, and security.
- Bot Framework: Manages user interactions and automates tasks such as sending reminders and engagement messages via the Copilot.
- React Application: Handles front-end functionality in Microsoft Teams.
- LNBits API: Connects with LNBits for handling micro-transactions on the Lightning Network.
- Azure Cloud Services: Provides backend infrastructure, including data storage, APIs, and security.
LNBits handles wallet and transaction management. Extensions to LNbits are used for any additional storage. The solution intentionally keeps additional storage information to a minimum (such as no additional databases).
The following key components make up Zapp.ie:
- Bot (Copilot): Sends notifications, reminders, and interacts with users.
- Microsoft Teams Integration: Provides a UI for users to check balances, send Zaps, and view leaderboards.
- LNBits: A Lightning Network-based wallet and transaction system for managing Zaps.
- React Components: For user interaction and administration settings.
Zapp.ie automates many aspects of team engagement:
- Copilot sends automated reminders to use Zaps, thanks contributors, and manages workflow engagement.
- Admin Automations (future feature) will allow setting up automatic reward schedules via LNBits extensions.
The UI integrates within Microsoft Teams, offering intuitive components like balance displays, a Zap leaderboard, and a reward dashboard. Future updates will add more customization and dashboard enhancements.
The following licenses are required to run the solution:
- Microsoft Power Platform License
- Microsoft 365 Licensing
- Azure Subscription for hosting and scaling.
- LNBits License for wallet management (if applicable).
The Zapp.ie platform is designed with security in mind:
- Azure Active Directory (AAD) for secure authentication and user management.
- Encrypted Communication for all transactions and user data.
- GDPR Compliance for handling user data and privacy.
A robust testing strategy ensures all components are validated:
- Unit Testing for individual components.
- Integration Testing for connecting the bot, LNBits, and React App.
- User Acceptance Testing (UAT) for real-world scenario validation by end users.
- Continuous Testing in Azure DevOps pipelines for ensuring each update passes validation before deployment.
The Zapp.ie solution uses GitHub workflow for continuous integration and deployment (CI/CD). New features will be deployed in the following environments:
- Developer Sandboxes: For building and testing.
- Testing: For internal validation and feature testing.
- Production: For live deployment after approval.
ID | Title | Mitigation |
---|---|---|
001 | LNbits infrastructure downtime | Skill-up team on running production infrastructure in Azure |
ID | Title | Description | Mitigation |
---|---|---|---|
001 | LNbits API functionality | API limitations mean we have to query inefficient | Raise issues with LNbits, and in future submit PRs |
002 | LNbits Admin limitations | Some UI features around user management are limited | Raise improvements with LNbits, and submit PRs |
003 | Bot Frame challenges | Deploying bots can be programmatic with clashing IDs etc. | Raise tickets, document typical fixes |