This is a sample e-commerce-like Rails application that where user can see the list of orders and return products they don't like.
It's not intended to be a full-fledged e-commerce application. You can't really place orders (use seeds to create orders and products), but you can create a return for products from orders that are in "delivered" state.
- Each product is unique and one of a kind
- Users may purchase multiple orders, and many of them may be in a "delivered" state at the same time
- Users may return products once the order is delivered
- Users may add products from multiple orders into a single return (order to Return association is not 1:1)
- Users may return products within 14 days of delivery
- Users will receive refunds for returned products minus the return shipping fee (constant, $10)
Install dependencies (ruby, gems) and setup sqlite database. Re-seed DB if you want to have more data to play with.
bundle exec rails db:create
bundle exec rails db:migrate
bundle exec rails db:seed
Run using rails server.
For the purpose of the interview, focus on apis, models and data structure. Ignore views, controllers and other parts of the application. Make yourself familiar with the code and business logic for return flow so you can talk about it during the interview. Run the project and test the return flow to see how it works.