Thank you for your interest in contributing to Asper Beauty Shop! This document provides guidelines and instructions for contributing.
- Node.js 18+ or Bun
- npm, yarn, or bun
- Git
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/asperbeauty.git cd asperbeauty - Install dependencies:
npm install
- Start the development server:
npm run dev
Use descriptive branch names:
feature/add-product-filters- New featuresfix/cart-quantity-bug- Bug fixesdocs/update-readme- Documentation updatesstyle/header-redesign- UI/styling changes
Follow conventional commit format:
type(scope): description
[optional body]
Types:
feat: New featurefix: Bug fixdocs: Documentationstyle: Styling/formattingrefactor: Code refactoringtest: Adding testschore: Maintenance
Examples:
feat(cart): add quantity selector to cart items
fix(search): resolve dropdown not closing on blur
docs(readme): update installation instructions
- Use TypeScript for all new code
- Define proper types and interfaces
- Avoid
anytype when possible
- Use functional components with hooks
- Keep components small and focused
- Extract reusable logic into custom hooks
- Use Tailwind CSS utility classes
- Follow the design system tokens defined in
src/index.css - Use semantic color tokens (e.g.,
text-foreground,bg-primary) - Never use hardcoded colors directly
src/
├── components/ # Reusable components
│ └── ui/ # shadcn/ui base components
├── pages/ # Route pages
├── hooks/ # Custom hooks
├── lib/ # Utilities
├── stores/ # Zustand stores
└── contexts/ # React contexts
- Code builds without errors (
npm run build) - Code follows the project's style guidelines
- Components are responsive (mobile, tablet, desktop)
- RTL support is maintained for Arabic language
- No console errors or warnings
- Create a pull request with a clear title and description
- Link any related issues
- Wait for review from maintainers
- Address any requested changes
- Once approved, your PR will be merged
When reporting bugs, please include:
- Description: Clear description of the issue
- Steps to Reproduce: How to trigger the bug
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
- Screenshots: If applicable
- Environment: Browser, OS, device
For feature requests, please provide:
- Problem Statement: What problem does this solve?
- Proposed Solution: How should it work?
- Alternatives Considered: Other approaches you've thought about
- Additional Context: Mockups, examples, etc.
- React Documentation
- Tailwind CSS
- shadcn/ui Components
- Zustand State Management
- Lovable Documentation
For questions or support:
- Create an issue in this repository
- Join our community on Discord
Thank you for contributing! 🙏