violet_rails

an app engine for your business. Seamlessly implement business logic with a powerful API. Out of the box CMS, blog, forum and email functionality. Developer friendly & easily extendable for your next SaaS/XaaS project. Built with Rails 6, Devise, Sidekiq & PostgreSQL

MIT License

Stars
96
Committers
5

Bot releases are hidden (Show)

violet_rails - 0.9.125 Latest Release

Published by donrestarone about 1 year ago

What's Changed

The problem:

detailed Errors are not showing on referrals.restarone.com

Screenshot from 2023-10-11 16-16-16

The solution

print detailed errors when page creation fails

Screenshot from 2023-10-11 16-09-45

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.124...0.9.125

violet_rails - 0.9.124

Published by donrestarone about 1 year ago

What's Changed

Addresses: https://github.com/restarone/violet_rails/issues/1609

  • importing 'cable' in typical way from @hotwired/turbo-rails attempts to register "turbo-frame" element multiple times, we are now importing it in a Violet Rails specific way that does not interfere with custom implementations

Demo Clip

https://github.com/restarone/violet_rails/assets/25191509/f8368c2b-e072-4b5c-b9e9-bff3ee17c42a

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.123...0.9.124

violet_rails - 0.9.123

Published by donrestarone about 1 year ago

What's Changed

Video rooms

Addresses: https://github.com/restarone/violet_rails/issues/1598

Initialize your room from the Admin panel,
Screenshot from 2023-09-13 09-02-45

share the link with participants to join!

How does it work?

It works by peers streaming to, and from each other. For more details and to

learn about WebRTC, Signalling servers (TURN/STUN) and ICE candidates, see here: https://www.youtube.com/watch?v=WmR9IMUD_CY

guide: https://github.com/domchristie/webrtc-hotwire-rails

Todo's:

  1. ability for participants to mute audio / stop video
  2. fix flakiness in new participants connecting to already-joined peers (newly joined peers dont see existing participants until they refresh the page and join again)
  3. UI improvements, see: https://github.com/Alicunde/Videoconference-Dish-CSS-JS

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.122...0.9.123

violet_rails - 0.9.122

Published by donrestarone about 1 year ago

What's Changed

Calendar and Meetings

addresses: https://github.com/restarone/violet_rails/issues/1597
This release adds the ability for Violet to handle your calendar. Incoming emails with .ics attachments will automatically be added to your calendar as meetings.

Calendar UI

Screenshot from 2023-09-14 00-25-19

Outgoing Meeting request RSVP controls

IMG_7264

todo:

  1. include .vcs file for outlook
  2. add validations to meeting model

further reading:

  1. icalendar syncing events: https://joshfrankel.me/blog/lemme-pencil-you-in-using-icalendar-and-rails-to-sync-calendar-events/
  2. all the options: https://blog.corsego.com/icalendar-ruby
  3. publish? https://stackoverflow.com/questions/55927263/what-does-icalendar-publish-method-do
  4. dealing with email client quirkyness when displaying RSVP buttons: https://stackoverflow.com/questions/66102584/when-i-add-method-request-to-icalendar-gmail-stops-recognizing-as-event

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.121...0.9.122

violet_rails - 0.9.121

Published by donrestarone about 1 year ago

What's Changed

Living Doc: https://github.com/restarone/violet_rails/issues/1562

Currency

Printify has two currency settings;

  • catalog currency: This is the currency in which we can view different product prices in Printify's catalog.
  • billing currency : This is the currency in which the shop owner will be charged by Printify.

We can find further details about it over Printify webpage. LINK 1, LINK 2

The Printify's products API does not provide any details regarding the currency being used. It only returns the price in figures.

So, to overcome this barrier, we would have to manually set the currency, which is being used or has been setup in Printify platform, in Violet-Rails end. It will be saved under a shop api-resource's properties as below; TEST-NET LINK

This currency information will be used to show the prices in products-listing, product-detail, cart and Stripe's checkout page.

Note: For now, we are using USD currency over the test-net.

HOW TO RUN PRINTIFY PLUGIN INSTALER SCRIPT

https://github.com/restarone/violet_rails/pull/1557

Export variables

  • cd to violet_rails root

Required Variables

  • export SHOP_NAME="Restarone"
  • export PRINTIFY_API_KEY="your api key"

Optional Variables

  • export STRIPE_SECRET_KEY="your stripe secret key"
  • export PRODUCTS_PAGE_SLUG="your products page url"
  • export BUSINESS_NAME="your business name in printify account"

Run Installer

In development

  • docker-compose run --rm -e SHOP_NAME -e PRINTIFY_API_KEY -e STRIPE_SECRET_KEY -e PRODUCTS_PAGE_SLUG -e BUSINESS_NAME solutions_app rails r ./plugins/installers/printify_stripe_e_commerce.rb

In production

  • rails r ./plugins/installers/printify_stripe_e_commerce.rb

In test server with dokku

  • dokku run -e SHOP_NAME -e PRINTIFY_API_KEY -e STRIPE_SECRET_KEY -e PRODUCTS_PAGE_SLUG -e BUSINESS_NAME <APP_NAME> rails r ./plugins/installers/printify_stripe_e_commerce.rb

Variables

SHOP_NAME:

Name of the printify shop you want to sync to violet rails.

PRINTIFY_API_KEY:

https://github.com/restarone/violet_rails/assets/50227291/22a2853d-1d99-4fc0-8dc8-2a81e31eb67e

STRIPE_SECRET_KEY:

https://github.com/restarone/violet_rails/assets/50227291/1d92065c-c04c-4a45-a656-46017466429c

BUSINESS_NAME:

Business name in your printify account.

https://github.com/restarone/violet_rails/assets/50227291/ce67a088-6412-4c02-8f68-1b2c8392e945

PRODUCTS_PAGE_SLUG:

The url you want for your products list page. Default is 'products'

https://github.com/restarone/violet_rails/assets/50227291/125c9681-84ac-49c6-ab7e-8e6d784abcbe

STORE MANAGEMENT

How to hide product from the store:

https://github.com/restarone/violet_rails/assets/50227291/6698994e-1d33-4073-bc6e-6d18cd88a92c

How to change who pays processing fees (Pass On to customer or Absorb Fees)

If pass_processing_fees_to_customer is set to true, the Convenience fee, ie. the stripe processing fee (2.9% + $0.30) and stripe tax collection charge (0.5% if sales tax enabled) will be passed to customers

https://github.com/restarone/violet_rails/assets/50227291/6b703d35-7b29-437f-b49e-43947cb4e9b1

DEBUGGING

If any feature is not working, please check shop_logs namespace. We store error logs there.

Stuck in publishing state?

  • Run sync_printify_products plugin

https://github.com/restarone/violet_rails/assets/50227291/08e24d9f-b816-4cb8-9aa5-376f1771e7f1

How to check if Printify webhooks are created?

  • On rails console
PRINTIFY_API_KEY="your api key"
PRINTIFY_HEADERS = {                                             
  "Content-Type" => 'application/json;charset=utf-8',
  "Authorization" => "Bearer #{PRINTIFY_API_KEY}" 
}

shop_id = ApiNamespace.friendly.find('shops').api_resources.first.properties['printify_shop_id']

response = HTTParty.get("https://api.printify.com/v1/shops/#{shop_id}/webhooks.json", headers: PRINTIFY_HEADERS)

JSON.parse(response.body)

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.120...0.9.121

violet_rails - 0.9.120

Published by donrestarone about 1 year ago

What's Changed

addresses: https://github.com/restarone/violet_rails/issues/1588

Upon API Namespace creation, an index page (for rendering a list of entities) and show page (for rendering a specific entity by ID) are generated along with Snippets for rendering list and show views. For convenience, a breadcrumb navigation bar and creation form are included in the generated pages.

create a namespace with rendering enabled

auto generated index and show pages

rendered list view

rendered show view

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.119...0.9.120

violet_rails - 0.9.119

Published by donrestarone about 1 year ago

What's Changed

The problem:
email preview showing full email message in email threads list view:

fixes,

  • rendering overflow in email list view - list items are now a fixed size
  • sorting when email threads are updated with new messages - threads with unread messages, or new thread show up at the top

https://github.com/restarone/violet_rails/assets/35935196/438b3148-708c-4473-b1cb-436685d7e14b

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.118...0.9.119

violet_rails - 0.9.118

Published by donrestarone over 1 year ago

What's Changed

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.117...0.9.118

violet_rails - 0.9.117

Published by donrestarone over 1 year ago

What's Changed

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.116...0.9.117

violet_rails - 0.9.115

Published by donrestarone over 1 year ago

What's Changed

  • [feature] API Namespace Associations by @Pralish
  • update README by @guspan-tanadi

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.114...0.9.115

violet_rails - 0.9.114

Published by donrestarone over 1 year ago

What's Changed

Addresses: https://github.com/restarone/violet_rails/issues/1414 & https://github.com/restarone/violet_rails/issues/820

Allow login on iOS

Access Forum, Web app and Admin Index

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.113...0.9.114

violet_rails - 0.9.113

Published by donrestarone over 1 year ago

violet_rails - 0.9.112

Published by donrestarone over 1 year ago

What's Changed

Addresses: #1503

Before

When you had a big API Namespace it would break the view:

After

VIdeo demo

https://user-images.githubusercontent.com/73725297/230971387-635f4744-4acb-46f7-a056-12a1541a4351.mp4

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.111...0.9.112

violet_rails - 0.9.111

Published by donrestarone over 1 year ago

What's Changed

Addresses: https://github.com/restarone/violet_rails/issues/1524

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.110...0.9.111

violet_rails - 0.9.110

Published by donrestarone over 1 year ago

What's Changed

Addresses: https://github.com/restarone/violet_rails/issues/1399 and https://github.com/restarone/violet_rails/issues/1452

Profiling Results ๐Ÿ“ˆ ๐Ÿงช

Slight improvements to user experience

When analysis going back 1 year is shown, there is a noticeable performance improvement:

Less memory & objects used

When a 1 year analysis is shown, less memory and objects are allocated and retained:

Garbage collector is running consistently

on a per request basis, we observe that the garbage collector runs before the request is served. Indicating that used memory has been drained and freed to be used for other requests.

Case study: Marked Restaurant

Resource usage

comparison of memory / CPU usage before and after patch

Baseline ๐Ÿ†Ž

The "resting memory rate" for a high traffic Violet system is around 600MB:

Before โช

Viewing the 1 year analysis:

Viewing the 1 month analysis:

We observe 1.2 GB of memory use (double the resting rate)

Profiler result ๐Ÿ“ˆ
While attempting to run the memory profiler on the 1 year analysis, we observed 3GB+ of memory usage โš ๏ธ

โญ After the test was run, puma was restarted to ensure system stability

After โฉ

Viewing the 1 year analysis:

We observe 720MB of memory use

Viewing the 1 month analysis:

We observe 850 MB of memory use

Profiler result ๐Ÿ“ˆ
We observe 900MB of memory use when profiling the 1 year analysis

Result

The system is now consuming memory in analytics V2 comparable to its resting memory usage rate.

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.109...0.9.110

violet_rails - 0.9.109

Published by donrestarone over 1 year ago

What's Changed

๐Ÿฆพ Strong Migrations ๐Ÿ’พ

Data consistency, durability and availability is important. Which is why now, we are enforcing database migration standards via strong_migrations: https://github.com/ankane/strong_migrations -- to preserve the uptime of your system and encourage zero-downtime data/schema migrations.

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.108...0.9.109

violet_rails - 0.9.108

Published by donrestarone over 1 year ago

What's Changed

Addresses:
https://github.com/restarone/violet_rails/issues/1473

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.107...0.9.108

violet_rails - 0.9.107

Published by donrestarone over 1 year ago

What's Changed

add PR checklist

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.106...0.9.107

Badges
Extracted from project README
Brakeman Scan Heroku Deployments AWS EC2 Deployments
Related Projects