Project Infrastructure & Architecture: How to plan a Rails project with various 3rd party building blocks?

Hi!

I am a Rails and generally web development beginner who has completed a 3 month Ruby/Rails+HTML/CSS/JavaScript bootcamp and I have being practicing especially Ruby quite a bit since then, ranking 2nd Kyu on Codewars currently. Currently I am planning a first bigger project. I need help in how to plan the architecture of the parts that I want to plug together. Here is what I want to do in the following steps:

Prerequisites:

  1. The entire project should appear as a monolithic web application to the user, with a unified look & feel and a single user account / login with which he can traverse seamlessly the various components of the website
  2. All interfaces should be multilingual
  3. All user content shall be translated automatically to the locale of the viewing user
  4. In the first step the app should have a web interface, later on also native mobile interfaces for Android and iOS
  5. Where applicable: Multi-currency

Building blocks:

  1. www .myproject .com: The general, static multilingual CMS website as entry point for the user, where all following components are bond together. Current stack idea: Wordpress or Rails app with the gems Spina or AlchemyCMS
  2. forum .myproject .com: Create a forum and build up a niche but global community around a topic, with paid subscriptions, advertisements. Current stack idea: Self-hosted or SaaS [Discourse](h ttps://www.discourse.org/) forum, which is Rails based
  3. marketplace .myproject .com: Add a marketplace for the users to exchange goods, especially automotive accessories, cars, and services in terms of a “classified ads” tool. Current stack idea: Self hosted Wordpress with [AWPClassifieds plugin](h ttps://awpcp.com)
  4. shop .myproject .com: Add a shopping cart webshop so to sell goods and services, especially car spare parts and equipment with international delivery. Current stack idea: shopify or self hosted Wordpress+[WooCommerce](h ttps://woocommerce.com/) Plugin or Rails app with [Solidus](h ttps://solidus.io/) or [Spree Commerce](h ttps://spreecommerce.org/) gems
  5. blog .myproject .com: Add a blog for SEO content creation. Current stack idea: Self-hosted [Ghost](h ttps://ghost.org/)
  6. app .myproject .com: Add a custom made Rails app for doing various tasks such as user inventory management, finding partner companies on the map and doing appointments with them, getting notified for certain events, etc.

My questions:

  1. Is what I plan to do possible for a beginner?
  2. Does this stack make sense, or do you have better approaches or building parts that you can recommend, especially concerning making it a more unified Rails app than a Frankenstein of 100 parts?
  3. Is it possible to join all these building parts to seem like a monolithic app with single sign on as I plan to do it?
  4. What is the best approach in building this, what steps do you propose, which would you integrate with what other? Should e.g. the various Rails apps be ONE big app, or should I have them being separate Apps which talk with API with each other?
  5. Do you have proposals concerning what I could do in Rails instead using Wordpress, etc.? What could I combine to one big Rails app and what to separate instead? Can you propose equivalently good solutions in Ruby/Rails for the Classified Ads and Blogging instead of Wordpress & Ghost?
  6. What is the best approach to get that single user database with the single sign on and have all building parts be synced?
  7. Any other good advice for my endeavor?

Thanks for any advice/ input/ feedback!!

P.S.: @Broken web links: I had to break them since as a new user I was informed that only up to 2 links are allowed.

Hi! Congratulations on your progress so far. Your project is ambitious, but definitely possible. I’ll address your questions one by one:

  1. As a beginner, you’ll face challenges, but with determination and proper guidance, you can complete this project. Keep learning and don’t hesitate to ask for help.

  2. The stack makes sense, but you could consider using Rails for the entire project to make it more unified. You may still use popular gems and plugins when necessary.

  3. To make all building parts appear monolithic, consider using Rails Engines for separate modules or single sign on (SSO) solutions like Devise and OmniAuth.

  4. Building it piece by piece is a good strategy. You can divide your project into engines within one large Rails app and use APIs to communicate between them. This will make it easier to manage and maintain.

  5. I’d recommend using Rails instead of Wordpress as it provides more flexibility and control. You can utilize gems like Spree Commerce, Solidus, or AlchemyCMS for specific functionality.

  6. To achieve a single user database, use Rails as your primary backend and set up a central authentication system with Devise and OmniAuth. You can then sync user data with other parts of your system.

  7. My advice: Start small and iterate. Break the project into manageable pieces and continuously improve based on user feedback. Keep learning, stay active in Rails communities, and don’t get discouraged by setbacks.

Good luck with your project! Don’t hesitate to revisit the forum for help and guidance.