Skip to content

SandaminiM/superapp-mobile-lsf-version

Β 
Β 

Repository files navigation

Super App Mobile

Snapshot Image

License: Apache-2.0

This open source project provides a unified platform powered by micro app architecture, allowing you to seamlessly integrate multiple applications within a single container.

With this approach, you can deploy multiple Web apps inside one super app while customizing its functionalities to fit your specific requirements.

This repository serves as the foundation for hosting multiple micro-apps with seamless authentication, integration, and centralized management.


🧭 Project Structure

.
β”œβ”€β”€ backend/                  # Ballerina backend service for SuperApp
β”‚   └── README.md             # Backend setup and API docs
β”œβ”€β”€ docs/                     # Documentation and guides
β”‚   β”œβ”€β”€ DEPLOYMENT_GUIDE.md   # End-to-end deployment instructions
β”‚   └── FUTURE_IMPROVEMENTS.md # Planned enhancements
β”œβ”€β”€ frontend/                 # React Native (Expo) frontend for SuperApp
β”‚   └── README.md             # Frontend setup and usage docs
β”œβ”€β”€ observability/            # OpenTelemetry metrics and monitoring setup
β”‚   └── README.md             # Observability configuration
β”œβ”€β”€ resources/                # Images, diagrams, and assets
β”œβ”€β”€ sample-microapps/         # Example micro-apps for demonstration
β”‚   └── government-calendar/
β”‚       β”œβ”€β”€ frontend/         # React frontend
β”‚       └── README.md         # Micro-app documentation
β”œβ”€β”€ scripts/                  # Utility scripts for development and deployment
β”œβ”€β”€ superapp-admin-portal/    # React web portal for uploading and managing micro-apps
β”‚   └── README.md             # Admin portal documentation
β”œβ”€β”€ LICENSE                   # Apache 2.0 license
β”œβ”€β”€ README.md                 # Project root documentation (you're here)
β”œβ”€β”€ issue_template.md         # GitHub issue template
β”œβ”€β”€ package.json              # Root package configuration
└── pull_request_template.md  # GitHub pull request template

βš™οΈ Technologies Used

Backend

Frontend

  • Framework: React Native (Expo)
  • State Management: Redux Toolkit + Redux Persist

Authentication

  • External identity provider (OIDC/OAuth2 compatible)

🧱 System Architecture

Here’s a high-level view of the flow:

Architecture Diagram

🧱 Authentication Flow

Authentication Flow Diagram

Key Concepts

SuperApp vs MicroApps

  • SuperApp: The main container application that manages authentication, navigation, and micro-app lifecycle
  • MicroApps: Individual web applications loaded in WebViews, each serving specific functionality
  • Bridge: Communication layer between SuperApp and MicroApps (see frontend/docs/BRIDGE_GUIDE.md)

How Micro-Apps Work

  1. Micro-apps are listed in the Super App Store.
  2. Users can download micro-apps from the store.
  3. Downloaded micro-apps are stored using AsyncStorage.
  4. (if required) When launched, microapp specific tokens are issued by the superapp for access.
  5. The micro-app uses micro-app specific access tokens to communicate with the respective backends.

πŸš€ Getting Started

Each part of this repository has its own setup guide. Pick the guide that matches what you want to do:

End-to-End Setup

  • Super App Deployment Guide: Step-by-step instructions for setting up the entire SuperApp stack locally, including infrastructure (database, IdP), configuration. Ideal for new contributors or those working on the complete system.

Component-Specific Development

  • SuperApp Core Deployer (main app, backend, admin portal):

  • Micro-App Developers (third-party or in-house apps):

πŸ“‘ Observability (OpenTelemetry Metrics)

The mobile app sends performance metrics to an OpenTelemetry Collector, which exports to Prometheus.

Quick Start (Local Development)

cd observability
docker compose up -d

View metrics at http://localhost:9090 (Prometheus)

Configure the App

Set in frontend/.env:

EXPO_PUBLIC_OTEL_ENABLED=true
EXPO_PUBLIC_OTEL_COLLECTOR_URL=http://10.0.2.2:4318

Metrics Available

  • api_request_count_total, api_request_duration_bucket
  • microapp_load_count_total, microapp_load_duration_bucket
  • auth_token_refresh_count_total
  • app_start_time_bucket

See observability/README.md for details.

🐞 Reporting Issues

Opening an issue

All known issues of Open Super App Mobile are filed at: https://github.com/LSFLK/superapp-mobile/issues. Please check this list before opening a new issue.

Next steps & future improvements

Read the planned enhancements and longer-term tasks in FUTURE_IMPROVEMENTS.md.

🀝 Contributing

If you are planning on contributing to the development efforts of Open Superapp Mobile, you can do so by checking out the latest development version. The main branch holds the latest unreleased source code.

About

WSO2 Mobile App - features multiple micro apps, powered by a React Native frontend and Ballerina backend.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HTML 46.0%
  • TypeScript 42.8%
  • Ballerina 5.9%
  • Go 2.7%
  • JavaScript 2.1%
  • CSS 0.3%
  • Shell 0.2%