Thank you for your interest in contributing to StoreiFly Frontend. We welcome community contributions, bug reports, and feature proposals.
Please review the guidelines below to ensure a smooth contribution process.
All contributors and participants are expected to adhere to our Code of Conduct. Please read it before participating in discussions or opening pull requests.
- Fork the repository to your own GitHub account.
- Clone your fork locally:
git clone https://github.com/<your-username>/storeifly-frontend.git cd storeifly-frontend
Create a descriptive branch for your work:
git checkout -b feat/add-store-filter
# or
git checkout -b fix/cart-total-calculationBranch naming prefixes:
feat/for new featuresfix/for bug fixesdocs/for documentation changesrefactor/for code refactoringperf/for performance enhancementschore/for tooling and maintenance updates
- Install dependencies:
npm install
- Set up environment variables:
cp .env.example .env
- Start the development server:
npm run dev
- TypeScript Strictness: Maintain type safety. Avoid using
anywhere explicit interfaces or generic types can be defined. - Component Design: Keep components modular and single-responsibility. Extract reusable UI elements into
src/components/common/. - Styling: Use Tailwind CSS utility classes adhering to existing design tokens in
src/index.css. - State Management: Place global app state in dedicated React contexts (
AuthContext,CartContext). Keep transient state local to the component using hooks. - Code Formatting & Linting: Run the linter and ensure zero warnings or errors prior to committing:
npm run lint
We recommend following the Conventional Commits specification:
<type>(<scope>): <short description>
Examples:
feat(cart): implement coupon code discount calculationfix(storefront): resolve hero image aspect ratio on mobile devicesdocs(readme): add environment variables tablerefactor(api): streamline axios request interceptors
Before opening a pull request, verify that:
- The project compiles without TypeScript errors:
npm run build
- Lint checks pass cleanly:
npm run lint
- Your branch is rebased on the latest
mainbranch. - Your pull request description clearly explains:
- The purpose of the changes.
- Any related issues (e.g.,
Closes #42). - Steps to test the changes locally.
- Screenshots for UI additions or modifications.
- Bug Reports: Open an issue on GitHub detailing your environment, steps to reproduce, expected behavior, and actual behavior.
- Feature Requests: Open a discussion or issue explaining the use case, suggested implementation, and potential alternatives.