-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
structrued the readme
- Loading branch information
Showing
1 changed file
with
84 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! π |