Welcome to the Carrot repository! Carrot is a powerful and intuitive tool designed to revolutionize the way we create Product Requirement Documents (PRDs) for software development projects. In this readme, we will explore the key reasons why Carrot was created and how it can significantly improve your PRD creation process.
Carrot introduces a concise and expressive syntax that allows for faster reading and understanding of PRDs. With its simplified language constructs and intuitive keywords, Carrot PRDs are easier to parse and comprehend. This means that stakeholders, developers, and other team members can quickly grasp the requirements and intentions of a feature or functionality, enabling more efficient collaboration.
Example:
Feature: User Authentication
As a user
I want to log in to the system
So that I can access my personalized content
Scenario: Successful Login
Given I am on the login page
When I enter valid credentials
And click the "Login" button
Then I should be redirected to the dashboard
And see a welcome message
Carrot provides a streamlined syntax and structure, allowing for faster creation and iteration of PRDs. With its keyword-driven approach, you can easily capture requirements, define acceptance criteria, and outline user interactions. The use of reusable steps and scenario outlines further accelerates the PRD creation process, reducing the time spent on writing and maintaining documentation.
Example:
Feature: Product Search
As a customer
I want to search for products
So that I can find what I'm looking for quickly
Scenario Outline: Searching by Keyword
Given I am on the home page
When I enter "<keyword>" in the search field
And click the search button
Then I should see a list of products related to "<keyword>"
Examples:
| keyword |
| carrots |
| tomatoes |
| apples |
Carrot introduces a structured approach to PRD writing, making it easier to organize and navigate through complex requirements. With features, scenarios, steps, and tags, you can create a hierarchical structure that reflects the product's functionality. This allows for better traceability and maintainability of requirements, ensuring that no critical details are overlooked.
Example:
Feature: Order Management
As a store owner
I want to manage customer orders
So that I can fulfill them efficiently
Scenario: Viewing Order Details
Given I am on the order management page
When I click on an order with ID "<order_id>"
Then I should see the details of the order
@priority-high
Scenario: Cancelling an Order
Given I am on the order management page
When I select an order with ID "<order_id>"
And click the "Cancel" button
Then the order status should be set to "Cancelled"
One of the key advantages of Carrot is its ability to track objects and trace actions across multiple PRDs. By defining clear object names and using consistent action keywords, you can establish a unified language that ensures a seamless flow of information between PRDs. This enables better collaboration, reduces duplication of effort, and enhances the overall clarity and coherence of the PRD ecosystem.
Example:
Object | Action | Status | PRD Title |
---|---|---|---|
User | Create Account | Planned | User Management |
User | Log In | Implemented | User Authentication |
User | Update Profile | Planned | User Profile Management |
Product | Add to Cart | Implemented | Shopping Cart |
Product | Remove from Cart | Planned | Shopping Cart |
Product | View Details | Implemented | Product Details |
Order | Place Order | Implemented | Order Placement |
Order | Cancel Order | Planned | Order Management |
Payment | Make Payment | Planned | Payment Processing |
Payment | Refund Payment | Implemented | Payment Refunds |
Please note that this is just a simplified example to demonstrate how the table could be structured. In a real-world scenario, the table would include more objects, actions, and PRDs, along with additional columns such as priority, release version, and more detailed status information.
Carrot aims to revolutionize PRD creation by providing a faster, more structured, and more collaborative approach. With its intuitive syntax, improved organization, and object-action tracking capabilities, Carrot empowers teams to create high-quality PRDs that enhance communication, accelerate development, and ensure product success.
We invite you to explore the Carrot documentation, experiment with the examples, and experience the power of Carrot firsthand. Together, let's create PRDs that drive innovation and streamline the software development process.
Get started with Carrot today and unlock the true potential of your PRD creation process!
The Carrot repository is organized as follows:
docs/
: Contains the Carrot documentation.examples/
: Provides illustrative examples of Carrot PRDs for different use cases.tests/
: Includes test cases and scenarios for testing the Carrot library.LICENSE
: The license file governing the use and distribution of Carrot.README.md
: The readme file you are currently reading.
Feel free to explore the repository, contribute to the project, and provide feedback. We value your input and are excited to see how Carrot can make a difference in your PRD creation process.
To start using Carrot, follow these steps:
- Clone the template from the
/templates
folder - Start writing your PRD
- I recommend using vs-code to write your PRDs
- To speed up PRD writing and to get syntax highlighting, you can download the vs-code extension of carrot from here - (vscode carrot extension)[https://github.com/talvinder/vscode-carrot-extension]
Contributions to Carrot are always welcome! If you have any ideas, bug reports, or feature requests, please open an issue or submit a pull request. We appreciate community involvement and look forward to working together to enhance Carrot.
To contribute to Carrot, follow these steps:
- Fork the Carrot repository.
- Create a new branch for your feature or bug fix.
- Make your changes and ensure all tests pass.
- Commit your changes and push them to your fork.
- Open a pull request in the main Carrot repository.
Please refer to the CONTRIBUTING.md file for detailed guidelines on contributing to Carrot.
Carrot is released under the MIT License. Feel free to use, modify, and distribute Carrot within the terms of the license.