diff --git a/README.md b/README.md index bf8a0bc8..26d516d4 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,24 @@ -# [Teams should be an MVP feature!](https://blog.bullettrain.co/teams-should-be-an-mvp-feature/) - -### Rails 8 Multitenancy Boilerplate - -![Moneygun features](https://i.imgur.com/QUmTexS.png) - -Row-level route-based multitenancy in Ruby on Rails - - - -[Watch Screencast](https://www.youtube.com/watch?v=KMonLTvWR5g) - -### Inspiration - -- trello -- discord -- slack -- https://circle.so/ +# Rails 8 Multitenancy Boilerplate ### Core features - ✅ Registrations & Authentication (Devise + Devise invitable, but is quite easy to switch) -- ✅ Create Organizations (aka Teams, Organizations, Workspaces, Tenants) -- ✅ Invite Users to Organization & assign role (admin, member) +- ✅ Create Organizations (aka Teams, Accounts, Workspaces, Tenants) +- ✅ Invite Users to Organization & assign role (admin, member). - ✅ Organization admin can manage organization & members +- ✅ Authorization - ✅ Complete test coverage - ✅ Basic UI design +- ✅ Nested scaffold generators for fast development (/organizations/projects) + +![Moneygun features](https://i.imgur.com/QUmTexS.png) + +### About Row-level route-based multitenancy in Ruby on Rails + +[Teams should be an MVP feature!](https://blog.bullettrain.co/teams-should-be-an-mvp-feature/) + +[Watch Screencast](https://www.youtube.com/watch?v=KMonLTvWR5g): + ### Why route-based multitenancy? @@ -32,8 +26,6 @@ Row-level route-based multitenancy in Ruby on Rails - ✅ Keep multiple organizations open in different tabs - ✅ No hassle configuring subdomains -For example in Trello, you can have 2 unrelated boards open in 2 tabs. - ### Why deep nested routes? Yes, this can generate an "long" url like `/organizations/344/projects/4532/tasks/24342342/edit`, but it preserves the logical **hierarchy**. @@ -50,6 +42,40 @@ end I [tried using `OrganizationMiddlewhare`](https://github.com/yshmarov/askvote/pull/24/files#diff-44009a2f9efdafcc7cd44e1cb5e03151a74aa760c54af5c16e2cc7095ff3b0ffR7) like JumpstartPro does, but it felt too much of an **unconventional** approach. +### Design inspiration + +- trello +- discord +- slack +- https://circle.so/ + +For example in Trello, you can have 2 unrelated boards open in 2 tabs. + +## Development + +### Getting started + +1. Clone the template repository: +``` +git clone git@github.com:yshmarov/moneygun.git your_new_project_name +``` + +2. Enter the project directory: +``` +cd your_new_project_name +``` + +3. Run the configuration and setup scripts: +``` +bundle install +rails db:create db:migrate +``` + +4. Start your application: +``` +bin/dev +``` + ### Resource assignments and references should be to Membership and not User! 🚫 Bad