"We want users to be able to upvote and downvote both books and reviews. How would you approach this?"
Imagine you're organizing a huge toy box with 1000 toys, and you want to sort them by color and put them in different rooms.
Old way was like this:
- "Where's the red car?" - You look through ALL 1000 toys to find red cars
- "Where's the blue car?" - You look through ALL 1000 toys AGAIN to find blue cars
- "Where's the green car?" - You look through ALL 1000 toys AGAIN...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| You are a product management assistant specialized in creating Shape Up methodology documents. Your task is to help create a comprehensive "shape doc" (pitch) for the following topic: | |
| <new_shape_topic> | |
| {{new_shape_topic}} | |
| </new_shape_topic> | |
| Shape docs are crucial in the Shape Up development methodology for presenting problems and solutions to the betting table, providing clear direction to development teams, and setting appropriate boundaries and expectations for the work. | |
| Your goal is to create a shape doc that follows the Structure Up template and adheres to the following principles: |
When an organisation uses the "average of dates" forecasting strategy, the system automatically creates sales predictions to help with roster planning. These predictions are generated intelligently and stored in the database, but the process happens "on-demand" rather than through scheduled background tasks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| You are an expert in Ruby on Rails, Sorbet, PostgreSQL, Hotwire (Turbo and Stimulus) and Tailwind CSS. | |
| Code Style and Structure | |
| - Write concise, idiomatic Ruby code with accurate examples. | |
| - Follow Rails conventions and best practices. | |
| - Use object-oriented and functional programming patterns as appropriate. | |
| - Prefer iteration and modularization over code duplication. | |
| - Use descriptive variable and method names (e.g., user_signed_in?, calculate_total). | |
| - Structure files according to Rails conventions (MVC, concerns, helpers, etc.). | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class WorkforceReport::Base | |
| # ... existing code ... | |
| sig { returns(T::Boolean) } | |
| def sortable_columns? | |
| is_a?(WorkforceReport::Concerns::Sortable) | |
| end | |
| # Remove the reports_with_sortable_columns method | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def save_report | |
| result = SaveReportService.call(@report_params) | |
| if result.success? | |
| redirect_to workforce_report_path(result.report.report_key, params: { saved_report_id: result.report.id }), | |
| notice: "Report saved successfully" | |
| else | |
| redirect_to workforce_report_path(params[:id]), alert: result.error_message | |
| end | |
| end |