Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
structrued the readme
  • Loading branch information
BrahimS authored Dec 5, 2024
1 parent 29659e8 commit 6c10b8e
Showing 1 changed file with 84 additions and 55 deletions.
139 changes: 84 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,87 +1,116 @@
E-Commerce UI Kit Monorepo
A scalable and reusable component library for e-commerce applications, built with React.js, Nx, and TypeScript.

Features
React.js Based: Modern component-driven architecture.
Styled Components: CSS-in-JS styling for modular and dynamic UI design.
Radix UI Primitives: Accessible, low-level components as building blocks.
Clean Architecture: Enforces separation of concerns and maintainable code organization.
Storybook Integration: Isolated component development and documentation.
End-to-End Testing: Powered by Cypress for robust application testing.
Extendable: Add projects using other frameworks or styling tools.
TypeScript Support: Ensures strong typing and maintainable code.
Testing Ready: Pre-configured with Jest and Vitest for unit and integration testing.
Automation:
GitHub Actions for CI workflows.
Husky pre-commit hooks for test automation.
Getting Started
Prerequisites
Node.js (>= 14.x)
Nx CLI: Install with npm install -g nx.
Installation
Clone the repository:
bash
Copy code
git clone https://github.com/BrahimS/e-comerce-uikit.git
cd e-comerce-uikit
# πŸ“¦ E-Commerce UI Kit Monorepo

A scalable and reusable component library for e-commerce applications, built with **React.js**, **Nx**, and **TypeScript**.

---

## 🌟 Features

- πŸš€ **React.js Based**: Modern and component-driven development.
- 🎨 **Styled Components**: Modular and dynamic CSS-in-JS styling.
- 🧩 **Radix UI Primitives**: Accessible, low-level building blocks.
- πŸ—οΈ **Clean Architecture**: Enforces separation of concerns and maintainable code.
- πŸ“– **Storybook Integration**: Visualize and test components in isolation.
- βœ… **End-to-End Testing**: Powered by **Cypress** for robust application testing.
- πŸ”§ **TypeScript Support**: Ensures strong typing for maintainability.
- 🀝 **Flexible and Extendable**: Add new projects using other frameworks or styling tools.
- ⚑ **Automation**:
- **GitHub Actions** for continuous integration.
- **Husky** for pre-commit test automation.

---

## πŸš€ Getting Started

### πŸ“‹ Prerequisites
- **Node.js** (>= 14.x)
- **Nx CLI**: Install with `npm install -g nx`.

### πŸ› οΈ Installation
1. Clone the repository:
```bash
git clone https://github.com/BrahimS/e-comerce-uikit.git
cd e-comerce-uikit
Install dependencies:
bash
Copy code
npm install
Usage
Development Server
πŸ› οΈ Usage
πŸ–₯️ Development Server
Run a development server for a specific app:

bash
Copy code
npx nx serve [app-name]
Build Applications
πŸ“¦ Build Applications
Build an app for production:

bash
Copy code
npx nx build [app-name]
Run Tests
πŸ§ͺ Run Tests
Execute tests for a project:

bash
Copy code
npx nx test [project-name]
Storybook
Start Storybook to visualize and test components in isolation:
πŸ“– Storybook
Launch Storybook to visualize and test components in isolation:

bash
Copy code
npx nx storybook shared-ui
Cypress Testing
πŸ§ͺ Cypress Testing
Run Cypress for end-to-end tests:

bash
Copy code
npx nx e2e [project-name]
Project Structure
apps/: Specific applications (e.g., admin dashboards or user-facing platforms).
libs/shared-ui/: Reusable UI components.
storybook/: Configuration for Storybook component previews.
e2e/: End-to-end testing configuration and tests.
Radix UI and Custom Components
Components are built using Radix UI for accessibility and extensibility.
Users can create custom components or extend existing ones to suit their needs.
Styling with Styled Components
Uses Styled Components for scoped, modular, and themeable styling.
Contributors can integrate other styling solutions like SCSS or Tailwind CSS as needed.
Clean Architecture
This project adopts a Clean Architecture approach, promoting:

Separation of Concerns: Divides application logic into clear, manageable layers.
Reusability: Modular design for scalability.
Maintainability: Clear boundaries for consistent and robust development.
Contributing
πŸ“‚ Project Structure
plaintext
Copy code
apps/
admin/ # Admin dashboard app
storefront/ # Customer-facing e-commerce app

libs/
shared-ui/ # Reusable UI components
utils/ # Shared utility functions

storybook/ # Storybook configuration

e2e/ # Cypress end-to-end tests
🧩 Radix UI and Custom Components
Built using Radix UI for accessibility and extensibility.
Create custom components or extend existing ones to fit project-specific needs.
🎨 Styling with Styled Components
Utilizes Styled Components for dynamic, scoped, and reusable styles.
Contributors are free to integrate alternative styling tools like SCSS, Tailwind CSS, or Emotion.
πŸ—οΈ Clean Architecture
The repository adopts a Clean Architecture approach:

Separation of Concerns: Modular and maintainable code.
Reusability: Ensures scalability and flexibility.
Testability: Isolated layers for robust testing.
🀝 Contributing
We welcome contributions! Follow these steps to contribute:

Fork the repository.
Create a feature branch: git checkout -b feature/your-feature-name.
Commit your changes: git commit -m "Describe your changes".
Push the branch: git push origin feature/your-feature-name.
Create a feature branch:
bash
Copy code
git checkout -b feature/your-feature-name
Commit your changes:
bash
Copy code
git commit -m "Describe your changes"
Push the branch:
bash
Copy code
git push origin feature/your-feature-name
Open a pull request.
License
πŸ“œ License
This project is licensed under the MIT License.

πŸ™Œ Acknowledgments
Thanks to all contributors and open-source projects that make this repository possible! πŸ’™

0 comments on commit 6c10b8e

Please sign in to comment.