Git Product home page Git Product logo

solidus-demo's People

Contributors

aldesantis avatar cpfergus1 avatar davidedistefano avatar dependabot[bot] avatar elia avatar gsmendoza avatar kennyadsl avatar mfrecchiami avatar naokimi avatar rainerdema avatar seand7565 avatar spaghetticode avatar stefano-sarioli avatar waiting-for-dev avatar wintermeyer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

solidus-demo's Issues

Fail elegantly on backend database adjustments

Right now the backend fails on database adjustments in a variety of ways. Sometimes it returns an error message that looks nice, sometimes it sends you to a 500 page.

Figure out what the best way to fail on these requests is, and standardize it!

Fix Shared Carts on Frontend

Because of the way that we're foiling Devise to allow backend usage, every use is associated with one nonexistant user, and this user has a cart. As a result, everyone shares that cart. This is not ideal, especially for when multiple people are trying to preview the checkout process.

There are two fixes for this as far as I can tell:

  • Figure out another way to foil Devise
  • Separate Frontend into it's own app

Personally, I favor separating frontend into it's own app, for two reasons:

  • Admin side currently is able to see any carts (including addresses entered) and that's not ideal
  • We may want to use the frontend as an actual Solidus merch store in addition to being a preview store, and that will require a separate backend.

Can't access new order page from admin

Most "new" pages don't trigger the activerecord bomb I've set up, but for some reason the "New Order" button does. It would be cool to see this page, as it details how to create a new order.

Taxon creation & editing seems to be bugged

Editing a taxon seems to break anything related to the taxon - something to do with acts_as_list, it seems like? Edits also don't seem to take effect.

image

Also, creating a taxon with the API button that creates a "New Node" taxon, displays for all users. I'm guessing something to do with the API creating this taxon.

Turn info panel into an extension?

I think it would be very cool to turn the info panel into an extension, so that it can be added to real stores in order to train store admins after the launch and new store admins when they're onboarded.

We could probably do the same thing with the guided tour and just put them all under the same extension (solidus_backend_help/solidus_backend_guides?).

Upgrade to Ruby 2.6

I noticed we're using Ruby 2.4 which is a bit old and not officially supported by Solidus anymore. We should be using Ruby 2.6 instead. I'd avoid 2.7 because of the ton of deprecation warnings it prints because of the changes to keyword arguments.

Upgrade to Rails 6

I noticed this repository is using Rails 5, however we should probably be using Rails 6 instead to get advantage of all the latest features and performance improvements as well as to future-proof the demo.

Checking out multiple times breaks

If you check out twice on the same session with the same variant, you get an error:

image

This appears to be from Spree::StockItem#adjust_count_on_hand - looks like it has unsaved changes?

image

Since it only ever happens on the second checkout, I'm guessing these changes are persisted from the previous order.

Update Solidus Demo with the latest Admin

Once we release the first section of the admin, we should update the demo, too.
It should reflect both the progress with the software and the rebranding.

Let's also explore if we can leverage Platform.sh for running the demo.

Add all the things to the info panel

The info panel is where the user can see more information about the page they are currently on. Right now the info is... nonexistant. We should add info for every page.

Important things would be:

What buttons do what
Features that need explaining
Process flows (order management, shipment shipping, how to process returns)

Reset data periodically

Whenever I've seen a public product demo, it was full of spam. I think we should create some recurring cronjob to reset the data periodically (e.g. every night). This should be easily doable with Heroku's API, or we may even just truncate all tables via Rails.

Some changes don't appear on frontend

To reproduce:
Change a product title on admin
Go to home page
๐Ÿ˜ฑ The changes aren't there!

The changes are there on the product show and other index pages (taxon, search) - I'm not sure why the home page specifically doesn't show changes.

Add more tests and CI

It's extremely important for this demo to be working properly, since people could be using it to show prospects what Solidus looks like. In order to make it more stable, we should probably expand the test suite to cover the basic checkout flow and other critical user journeys, and integrate a CI pipeline such as CircleCI.

Guided tour - smoother transitions

The guided tour transitions are a bit abrupt, would love to smooth them out, maybe slide out the old messages and in the new, or have the un-whiteboxed-area move from place to place somehow.

Guided Tour - Save your place

When the tour progresses, your place should be saved with a cookie or something. That way, if you leave the tour for some reason, you can hit a button and go back to where you were.

Destroy old database entries

To prevent DB bloat, we should run a task on a regular basis that looks for user-generated data that has not been created or updated in over a month, and destroy that data.

We could create a rake task that does this, then use heroku scheduler to run it on a regular basis.

User guide should only show on backend

The idea behind the user guide is to provide training on how to use Solidus for Solidus admin - I imagine the primary use case would be to train new employees on things like returns or inventory management. Most people would use it as a quick reference. That said, I think it only makes sense in the context of the admin side of Solidus. You wouldn't want to, and hopefully don't need to, train customers how to use the frontend.

Increase visibility of admin

Our engagement on the demo is pretty low - I think a lot of people just hit the front page without realizing it's more than just a "look how pretty our site is" and that they can actually go to admin and do things. Maybe we can increase the visibility of admin access by adding it to the top demo bar?

Create a Guided Tour for decision makers

Create a guided tour for interested users.

This should be a page-by-page guided tour of Solidus. For example:

  • Start on admin orders page, have text at the top of the screen that says "This is the orders page, where all of your orders are." and a next button"
  • When "next" is clicked, the order filter section is whiteboxed and the text changes to "This is where you can find specific orders"
  • When "next" is clicked again, the page changes to the order show page, something else is whiteboxed & explained, and so on.

An example mockup of that this might look like this (but like, better designed and with cool transitions ๐Ÿ˜„)

image

Frontend users appear to be logged out

Frontend users have the "login" button, they should be marked as logged in though. I'd like to see the "My Account" button and allow users to see their account. Potential users are going to want to see what control their customers have over their account.

I'm not sure how difficult this will be to implement, because I think the frontend relies on a user_id which I don't have. Maybe I can just use the default users id?

Implement notification banner for upcoming Solidus Demo redesign

Desired Behavior
Add a fixed header banner to inform users about an upcoming design overhaul.

Users visiting our existing Solidus demo may not be aware that a new and improved version is in development. To manage expectations and build anticipation, a clear, engaging banner will be beneficial.

Upgrade to the latest version of solidus

The current solidus is 2.11 but 3.2 is already out and 3.3 is around the corner.

This should be upgraded in one of two ways:

  1. We consider this an existing app and we upgrade it as usual
  2. We try to rebuild the app from scratch and reapply the changes that were required for the demo behavior, this has the advantage that it would also use the latest version of the starter frontend

The second approach seems more complex, but maybe we can do the first and still move a little in the direction of the second, so that next time we can do the jump.

Update Solidus Demo and its Docker image(s)

The Solidus demo is not up-to-date, while it should reflect the latest version of Solidus, possibly with the Starter Storefront.

The Docker image should be updated, too, as a result, possibly via automation.

Moreover, we should add some more information on the Docker page.

Taxon icon exists? call fails and breaks the page

This line calls exists? on the paperclip object. Most of the time this works fine.

On vanilla paperclip(like an S3 integration), the exists? call will check to see if the original_filename exists, then use that filename to check if the file path exists. Perfect.

On paperclip-cloudinary, which is what we're using, the exists? call does not check if the original_filename exists before attempting to use it - resulting in an error when it tries to convert the nil filename to a string.

Quick and dirty fix would be to toss a !f.object.send(attachment).original_filename.nil? in the if statement before it checks the exists? function result here. Feels a bit hacky... but on the other hand, do we really want to fork paperclip-cloudinary to fix this? ๐Ÿ˜›

Users should be able to "reset" the demo data

In the context of using the demo store to debug issues or provide instructions to replicate issues like I've done here, it would be useful for users to be able to reset their demo data somehow.

I think the easiest way to do this would be to just change their sample_indicator_id, which would disassociate them from any changes they've made.

Guided tour - handle pages with no tour data

Some pages just aren't interesting enough to be on the tour. On these pages, we should probably just not display the tour code, or have a link to "start tour" or "continue tour"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.