A refactoring kata for practicing test-driven development and code improvement on a supermarket receipt system.
Supermarket Receipt Refactoring Kata is a coding exercise that provides a legacy codebase for practicing refactoring and test-driven development. It simulates a supermarket receipt system with pricing, discounts, and special offers, allowing developers to improve their skills by identifying code smells, writing tests, and implementing new features.
Software developers, coding bootcamp participants, and teams looking to practice refactoring, test-driven development, and clean code principles in a structured exercise.
It offers a realistic, self-contained codebase with intentional flaws, enabling focused practice on refactoring techniques without the overhead of setting up a project from scratch, and integrates with coaching methods like Samman for guided learning.
This is a refactoring kata for improving your coding skills
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes intentional flaws like Long Method and Feature Envy, providing tangible targets for refactoring practice as highlighted in the README's code smell identification.
Explicitly prompts writing automated tests before refactoring to ensure code safety, aligning with test-driven development principles as described in the feature set.
Supports the Samman coaching method for organized learning hours, making it ideal for team workshops and coding dojos, as noted in the README.
Offers new feature requests like discounted bundles and HTML receipts, allowing developers to apply refactoring skills to real-world scenarios beyond basic exercises.
The codebase is designed as an exercise and lacks essential elements like error handling, database persistence, or API endpoints, making it unsuitable for real applications.
Assumes prior knowledge of refactoring techniques and TDD, with minimal step-by-step instructions, which can be challenging for novices without external resources.
Does not include answer keys or validated implementations, potentially leading to frustration for learners who need feedback on their refactoring choices.