Skip to content

Commit

Permalink
Solara
Browse files Browse the repository at this point in the history
  • Loading branch information
ideyaa committed Sep 11, 2024
1 parent ba6bc12 commit 0aa9d78
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 30 deletions.
61 changes: 44 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,24 @@

## What is Solara?

**Solara** is a comprehensive Ruby library designed to streamline the setup and management of white label mobile applications across various platforms, including iOS, Android, and Flutter. This powerful tool provides developers with a centralized dashboard that simplifies the administration of multiple brands, enabling efficient control over app configurations.
**Solara** is a comprehensive Ruby library designed to streamline the setup and management of white label applications
across various platforms, including iOS, Android, and Flutter. This powerful tool provides developers with a centralized
dashboard that simplifies the administration of multiple brands, enabling efficient control over app configurations.

> White label mobile apps are ready-made apps that businesses can personalize with their own branding. They help companies quickly launch their services without needing to build an app from scratch. This approach saves time and money while allowing businesses to focus on their brand and customers.
> White label apps are ready-made apps that businesses can personalize with their own branding. They help companies
> quickly launch their services without needing to build an app from scratch. This approach saves time and money while
> allowing businesses to focus on their brand and customers.
## How Solara Works?

With **Solara**, you can effortlessly manage the dynamic components of your white label apps using a user-friendly Command Line Interface (CLI). The library allows for quick adjustments to settings and configurations, ensuring that your applications remain consistent and aligned with brand guidelines. Whether you are launching a new product or maintaining existing apps, **Solara** empowers you to handle everything from a single location.
With **Solara**, you can effortlessly manage the dynamic components of your white label apps using a user-friendly
Command Line Interface (CLI). The library allows for quick adjustments to settings and configurations, ensuring that
your applications remain consistent and aligned with brand guidelines. Whether you are launching a new product or
maintaining existing apps, **Solara** empowers you to handle everything from a single location.

The centralized configuration system supports seamless updates and modifications, making it easy to adapt to changing requirements and branding needs. Solara's intuitive dashboard and robust CLI commands work in harmony to provide a complete solution for developers looking to optimize their workflow and enhance their app management experience.
The centralized configuration system supports seamless updates and modifications, making it easy to adapt to changing
requirements and branding needs. Solara's intuitive dashboard and robust CLI commands work in harmony to provide a
complete solution for developers looking to optimize their workflow and enhance their app management experience.

## Why Solara?

Expand All @@ -51,35 +60,47 @@ Solara supports iOS, Android, and Flutter, allowing for cohesive management acro

### Centralized Configurations

Solara offers a single point of control for managing all dynamic components of white label apps, making updates and consistency easier to achieve.
Solara offers a single point of control for managing all dynamic components of white label apps, making updates and
consistency easier to achieve.

### User-Friendly Dashboard

The intuitive dashboard allows for quick navigation and management of multiple brands, streamlining the administrative process.
The intuitive dashboard allows for quick navigation and management of multiple brands, streamlining the administrative
process.

### Powerful CLI Support

With robust command-line interface commands, developers can efficiently configure and control app settings without needing to navigate through the interfaces. Solara’s robust command-line interface integrates seamlessly with dev ops tools like Fastlane, GitHub Actions, and other tools, allowing for automated deployment, continuous integration, and streamlined workflows. This enhances efficiency and reduces manual effort in managing white label apps.
With robust command-line interface commands, developers can efficiently configure and control app settings without
needing to navigate through the interfaces. Solara’s robust command-line interface integrates seamlessly with dev ops
tools like Fastlane, GitHub Actions, and other tools, allowing for automated deployment, continuous integration, and
streamlined workflows. This enhances efficiency and reduces manual effort in managing white label apps.

### Seamless Brand Switching

Switching between brands is a piece of cake with Solara’s CLI or centralized dashboard. This functionality allows developers to change configurations without altering the Git repository, facilitating smooth team collaboration and development.
Switching between brands is a piece of cake with Solara’s CLI or centralized dashboard. This functionality allows
developers to change configurations without altering the Git repository, facilitating smooth team collaboration and
development.

### Easy Onboarding and Offboarding

Adding or removing brands is straightforward with Solara’s CLI or centralized dashboard. This feature simplifies the process of editing configurations, ensuring that teams can quickly adapt to changes without any hassle.
Adding or removing brands is straightforward with Solara’s CLI or centralized dashboard. This feature simplifies the
process of editing configurations, ensuring that teams can quickly adapt to changes without any hassle.

### Solara Doctor

This powerful feature automatically detects issues in application or brand configurations, running health checks every time you use Solara. Users can also manually trigger it through the CLI or dashboard, ensuring that your brands remain in optimal condition and reducing potential problems before they arise.
This powerful feature automatically detects issues in application or brand configurations, running health checks every
time you use Solara. Users can also manually trigger it through the CLI or dashboard, ensuring that your brands remain
in optimal condition and reducing potential problems before they arise.

### Effortless Brand Management

Easily switch and manage multiple brands, ensuring that each app remains aligned with its specific branding requirements.
Easily switch and manage multiple brands, ensuring that each app remains aligned with its specific branding
requirements.

### Streamlined Development Workflow

By automating and simplifying configuration tasks, Solara enhances developer productivity and reduces the potential for errors.
By automating and simplifying configuration tasks, Solara enhances developer productivity and reduces the potential for
errors.

### Scalability

Expand Down Expand Up @@ -122,7 +143,8 @@ Ensure that all apps maintain a uniform look and feel, enhancing user experience

## Getting Started

Please visit the [Wiki](https://github.com/Solara-Kit/Solara/wiki/), for a comprehensive guide on installation and getting started.
Please visit the [Wiki](https://github.com/Solara-Kit/Solara/wiki/), for a comprehensive guide on installation and
getting started.

---

Expand All @@ -134,7 +156,8 @@ After checking out the repository, run the following command to install the nece
bundle exec install
```

To run Solara on your local machine, clone the example project from [Infinite](https://github.com/Solara-Kit/Infinite). Ensure that both Solara and Infinite reside in the same root folder. Then, execute:
To run Solara on your local machine, clone the example project from [Infinite](https://github.com/Solara-Kit/Infinite).
Ensure that both Solara and Infinite reside in the same root folder. Then, execute:

```bash
bundle install
Expand All @@ -148,7 +171,9 @@ This will set up everything you need to get started.

## Contributing

Bug reports and pull requests are welcome on GitHub at [Solara](https://github.com/Solara-Kit/Solara). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/Solara-Kit/Solara/blob/main/etc/md/CODE_OF_CONDUCT.md).
Bug reports and pull requests are welcome on GitHub at [Solara](https://github.com/Solara-Kit/Solara). This project is
intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to
the [code of conduct](https://github.com/Solara-Kit/Solara/blob/main/etc/md/CODE_OF_CONDUCT.md).

---

Expand All @@ -160,8 +185,10 @@ The gem is available as open source under the terms of the [MIT License](https:/

## Code of Conduct

Everyone interacting in the Solara project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [code of conduct](https://github.com/Solara-Kit/Solara/blob/main/etc/md/CODE_OF_CONDUCT.md).
Everyone interacting in the Solara project's codebases, issue trackers, chat rooms, and mailing lists is expected to
follow the [code of conduct](https://github.com/Solara-Kit/Solara/blob/main/etc/md/CODE_OF_CONDUCT.md).

---

Explore the Wiki for more information on effectively using Solara! If you have any questions or need further assistance, feel free to reach out.
Explore the Wiki for more information on effectively using Solara! If you have any questions or need further assistance,
feel free to reach out.
19 changes: 19 additions & 0 deletions solara/lib/core/scripts/brand_offboarder.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
class BrandOffboarder

def offboard(brand_key, confirm: true)
if confirm
Solara.logger.warn("Are you sure you need to offboard #{brand_key} and delete all its configurations? (y/n)")
confirmation = STDIN.gets.chomp.downcase

unless confirmation == 'y'
Solara.logger.info("Offboarding #{brand_key} cancelled.")
return
end
end
BrandsManager.instance.offboard(brand_key)
Solara.logger.success("Offboarded #{brand_key} successfully.")
is_current_brand = BrandsManager.instance.is_current_brand(brand_key)
SolaraManager.new.switch(BrandsManager.instance.first_brand_key, ignore_health_check: true) if is_current_brand
end

end
14 changes: 1 addition & 13 deletions solara/lib/solara_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,7 @@ def onboard(brand_key, brand_name, init: false, clone_brand_key: nil, open_dashb
end

def offboard(brand_key, confirm: true)
if confirm
Solara.logger.warn("Are you sure you need to offboard #{brand_key} and delete all its configurations? (y/n)")
confirmation = STDIN.gets.chomp.downcase

unless confirmation == 'y'
Solara.logger.info("Offboarding #{brand_key} cancelled.")
return
end
end
BrandsManager.instance.offboard(brand_key)
Solara.logger.success("Offboarded #{brand_key} successfully.")
is_current_brand = BrandsManager.instance.is_current_brand(brand_key)
switch(BrandsManager.instance.first_brand_key, ignore_health_check: true) if is_current_brand
BrandOffboarder.new.offboard(brand_key, confirm: confirm)
end

def switch(brand_key, ignore_health_check: false)
Expand Down

0 comments on commit 0aa9d78

Please sign in to comment.