Rose Logo

๐ŸŒน Rose - Modern Angular E-Commerce Platform

A sophisticated, production-ready E-Commerce SPA delivering exceptional shopping experiences

Angular NX PrimeNG TypeScript License: MIT


๐ŸŽฏ Project Overview

Rose is a cutting-edge e-commerce platform built with modern web technologies, designed to deliver an exceptional shopping experience across all devices. The application leverages Angular 19's latest features, NX monorepo architecture, and a comprehensive suite of tools to provide scalability, maintainability, and outstanding performance.

๐ŸŽฏ Mission

To create a world-class e-commerce platform that combines beautiful design with powerful functionality, enabling businesses to deliver exceptional online shopping experiences.

๐ŸŽจ Design Philosophy

  • User-Centric: Every feature is designed with the end-user in mind
  • Performance-First: Optimized for speed and efficiency
  • Accessible: Inclusive design for all users
  • Scalable: Built to grow with your business needs

๐Ÿš€ Live Demos & Resources

Resource Link Description
๐ŸŒ Production App rose-chi-nine.vercel.app Live application demo
๐Ÿ“š Documentation rose-d2ff.vercel.app Comprehensive docs
๐Ÿ—ƒ๏ธ Project Structure Project Structure Comprehensive docs
๐Ÿ“‚ Source Code GitHub Repository Full source code
๐ŸŽจ Design System Figma Design UI/UX designs
๐ŸŽฅ Demo Video Demo Video Watch the full platform demonstration

๐Ÿ‘จโ€๐Ÿ’ป Our Team

Meet the talented individuals behind Rose E-Commerce Platform:

๐Ÿš€ Core Development Team

Role Name Phone Mail LinkedIn CV
Frontend Developer Karim Ashraf Mohamed +201007101012 karimashraf000@gmail.com LinkedIn CV
Frontend Developer Reham Gomaa +201091628541 rehamgomaa686@gmail.com LinkedIn CV
Frontend Developer Maher Samy +201557778612 mahersamybalata@gmail.com LinkedIn CV
Frontend Developer Habiba Ehab +201272691175 Habiba.em7@gmail.com LinkedIn CV
Frontend Developer Mahmoud Mohamed +201113709071 mahmouddessoki33@gmail.com LinkedIn CV

โœจ Key Features

๐Ÿ›๏ธ Core E-Commerce Features

  • Advanced Product Catalog

    • Smart search with filters and sorting
    • Category-based navigation
    • Product variants and options
    • Stock management integration
  • Shopping Cart & Checkout

    • Persistent cart across sessions
    • Guest and registered checkout
    • Multiple payment methods
    • Order confirmation and tracking
  • Wishlist Management

    • Save favorite products
    • Share wishlists
    • Move items to cart
    • Wishlist analytics

๐Ÿ‘ค User Experience Features

  • Authentication & Profile

    • Secure registration and login
    • Social media authentication
    • Password recovery with email verification
    • Comprehensive profile management
    • Account deletion with data export
  • Personalization

    • Dark/Light theme toggle with system detection
    • Multi-language support (i18n)
    • Personalized recommendations

๐Ÿ“ฑ Modern Web Features

  • Responsive Design
    • Mobile-first approach
    • Tablet optimization
    • Desktop enhancement
    • Touch-friendly interactions

๐Ÿ—บ๏ธ Location & Delivery

  • Google Maps Integration
    • Address autocomplete
    • Store locator
    • Delivery zone mapping
    • GPS location services

๐Ÿ›  Technology Stack

๐ŸŽฏ Core Framework

Technology Version Purpose
Angular 19.x Frontend framework with signals
TypeScript 4.9+ Type-safe development
RxJS 7.x Reactive programming
NgRx Signals Latest State management

๐ŸŽจ UI & Styling

Technology Purpose
PrimeNG Comprehensive UI components
PrimeFlex Utility-first CSS framework
PrimeIcons Modern icon library
SCSS Advanced CSS preprocessing

๐Ÿ—๏ธ Build & Architecture

Technology Purpose
NX Monorepo build system
AVIFack Module bundling
ESLint Code linting
Prettier Code formatting

๐Ÿ”ง Development Tools

Technology Purpose
Jest Unit testing
Cypress E2E testing
Storybook Component documentation
Compodoc Code documentation

๐Ÿ—๏ธ Architecture Overview

Rose follows a modular, scalable architecture pattern:

๐Ÿ›๏ธ Architecture Principles

  • Separation of Concerns: Clear boundaries between features
  • Dependency Injection: Loosely coupled components
  • Reactive Programming: RxJS for data flow
  • Smart/Dumb Components: Clear component hierarchy
  • Feature-Based Structure: Organized by business domains

๐Ÿ“ฆ Module Structure

Example :
Rose Application
โ”œโ”€โ”€ Core Module (Singleton services)
โ”œโ”€โ”€ Shared Module (Common components)
โ”œโ”€โ”€ Feature Modules
โ”‚   โ”œโ”€โ”€ Auth Module
โ”‚   โ”œโ”€โ”€ Products Module
โ”‚   โ”œโ”€โ”€ Cart Module
โ”‚   โ”œโ”€โ”€ Orders Module
โ”‚   โ””โ”€โ”€ User Module
โ””โ”€โ”€ Lazy-Loaded Routes

โšก Getting Started

๐Ÿ“‹ Prerequisites

Ensure you have the following installed:

  • Node.js 18.0.0 or higher
  • npm 8.0.0 or higher (or yarn 1.22.0+)
  • Git for version control
  • Angular CLI (optional but recommended)

๐Ÿ”ง Quick Start

Example :
# 1. Clone the repository
git clone https://github.com/Reham-Gomaa/Rose.git
cd Rose

# 2. Install dependencies
npm install

# 3. Start development server
nx serve rose

# 4. Open your browser
# Navigate to http://localhost:4200

๐Ÿ—๏ธ Development Commands

Example :
# Development server with hot reload
nx serve rose

# Build for production
nx build rose --configuration=production

# Run unit tests
nx test rose

# Run E2E tests
nx e2e rose-e2e

# Generate code coverage
nx test rose --code-coverage

# Lint the codebase
nx lint rose

# Build and serve production build locally
nx build rose --prod && nx serve rose --prod

๐Ÿ” Verification Steps

After installation, verify everything works:

  1. Application loads at http://localhost:4200
  2. No console errors in browser developer tools
  3. All routes work (navigation functioning)
  4. API connection established (if backend configured)

๐Ÿ“‹ Key Directories Explained

Directory Purpose Contents
apps/rose/src/app/core/ Core application services Singletons, guards, interceptors
apps/rose/src/app/shared/ Shared components Reusable UI components
apps/rose/src/app/features/ Feature modules Business logic modules
libs/ Shared libraries Cross-app reusable code
tools/ Build and deployment Custom scripts and tools

๐Ÿ“Š Performance Features

โšก Optimization Techniques

Code Splitting & Lazy Loading

Example :
// Lazy-loaded routes
const routes: Routes = [
  {
    path: "products",
    loadChildren: () => import("./features/products/products.module").then((m) => m.ProductsModule),
  },
  {
    path: "cart",
    loadChildren: () => import("./features/cart/cart.module").then((m) => m.CartModule),
  },
];

OnPush Change Detection

Example :
@Component({
  selector: "app-product-card",
  changeDetection: ChangeDetectionStrategy.OnPush,
  template: `...`,
})
export class ProductCardComponent {
  // Optimized component
}

Image Optimization

Example :
<!-- AVIF with fallback -->
<picture>
  <source srcset="assets/images/product.AVIF" type="image/AVIF" />
  <img src="assets/images/product.jpg" alt="Product" loading="lazy" />
</picture>

๐Ÿ“ˆ Performance Metrics

Metric Target Current
First Contentful Paint < 1.5s 1.2s
Largest Contentful Paint < 2.5s 2.1s
Time to Interactive < 3.0s 2.8s
Cumulative Layout Shift < 0.1 0.05

๐Ÿงช Testing Strategy

๐Ÿ”ฌ Testing Pyramid

Unit Tests (Jest)

Example :
// Example unit test
describe("ProductService", () => {
  let service: ProductService;

  beforeEach(() => {
    TestBed.configureTestingModule({});
    service = TestBed.inject(ProductService);
  });

  it("should fetch products", async () => {
    const products = await service.getProducts();
    expect(products).toBeDefined();
    expect(products.length).toBeGreaterThan(0);
  });
});

Integration Tests (Cypress)

Example :
// Example E2E test
describe("Shopping Cart", () => {
  it("should add product to cart", () => {
    cy.visit("/products");
    cy.get("[data-cy=product-card]").first().click();
    cy.get("[data-cy=add-to-cart]").click();
    cy.get("[data-cy=cart-count]").should("contain", "1");
  });
});

๐Ÿ“Š Test Coverage Goals

  • Unit Tests: > 80% coverage
  • Integration Tests: Critical user flows
  • E2E Tests: Key business scenarios

๐Ÿš€ Deployment Guide

๐ŸŒ Vercel Deployment (Recommended)

Automatic Deployment

Example :
# Install Vercel CLI
npm i -g vercel

# Deploy to production
vercel --prod

# Deploy preview
vercel

Environment Variables

Set in Vercel dashboard:

Example :
GOOGLE_MAPS_API_KEY=your_key_here
STRIPE_PUBLISHABLE_KEY=your_key_here
API_URL=https://your-api.com

โ˜๏ธ Other Deployment Options

Netlify

Example :
# Build command
nx build rose --prod

# Publish directory
dist/apps/rose

๐Ÿ” Security Features

๐Ÿ›ก๏ธ Security Implementation

JWT Token Handling

Example :
// Secure token storage
@Injectable()
export class AuthService {
  private tokenKey = "auth_token";

  storeToken(token: string): void {
    // Store in httpOnly cookie (server-side)
    // Or secure localStorage with encryption
  }

  getToken(): string | null {
    // Retrieve and validate token
    return this.secureStorage.getItem(this.tokenKey);
  }
}

๐Ÿ”’ Security Checklist

  • โœ… HTTPS enforcement
  • โœ… XSS protection
  • โœ… CSRF protection
  • โœ… Content Security Policy
  • โœ… Secure authentication
  • โœ… Input validation

โ™ฟ Accessibility

๐ŸŽฏ WCAG 2.1 AA Compliance

Semantic HTML

Example :
<main role="main" aria-label="Product Catalog">
  <section aria-labelledby="products-heading">
    <h2 id="products-heading">Featured Products</h2>
    <div role="grid" aria-label="Product grid">
      <article role="gridcell" tabindex="0">
        <!-- Product content -->
      </article>
    </div>
  </section>
</main>

Keyboard Navigation

Example :
@HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent): void {
  switch (event.key) {
    case 'Enter':
    case ' ':
      this.onClick();
      break;
    case 'Escape':
      this.onEscape();
      break;
  }
}

โœ… Accessibility Features

  • Screen reader support
  • Keyboard navigation
  • High contrast mode
  • Focus management
  • ARIA labels and roles
  • Color accessibility

๐ŸŒ Internationalization

๐Ÿ—ฃ๏ธ Multi-language Support

Translation Files

Example :
// assets/i18n/en.json
{
  "HEADER": {
    "TITLE": "Welcome to Rose",
    "SUBTITLE": "Your favorite online store"
  },
  "PRODUCTS": {
    "TITLE": "Products",
    "ADD_TO_CART": "Add to Cart",
    "OUT_OF_STOCK": "Out of Stock"
  },
  "CART": {
    "TITLE": "Shopping Cart",
    "TOTAL": "Total",
    "CHECKOUT": "Checkout"
  }
}

RTL Support

Example :
// RTL styles
[dir="rtl"] {
  .product-card {
    text-align: right;

    .price {
      margin-left: 0;
      margin-right: auto;
    }
  }
}

๐ŸŒ Supported Languages

  • ๐Ÿ‡บ๐Ÿ‡ธ English (en)
  • ๐Ÿ‡ธ๐Ÿ‡ฆ Arabic (ar) - RTL support
Example :

## ๐Ÿค Contributing

We welcome contributions from the community! Here's how you can help:

### ๐Ÿ› ๏ธ Development Workflow

#### 1. Fork & Clone
```bash
# Fork the repository on GitHub
# Clone your fork

2. Create Feature Branch

Example :
# Create and switch to feature branch
git checkout -b feature/amazing-feature

# Or for bug fixes
git checkout -b fix/bug-description

3. Development Setup

Example :
# Install dependencies
npm install

# Start development server
nx serve rose

# Run tests while developing
nx test rose --watch

4. Commit Guidelines

Example :
# Use conventional commits
git commit -m "feat: add product comparison feature"
git commit -m "fix: resolve cart calculation bug"
git commit -m "docs: update installation guide"

5. Submit Pull Request

  • Ensure all tests pass
  • Update documentation
  • Add screenshots for UI changes
  • Follow PR template

๐Ÿ“‹ Contribution Guidelines

Code Style

  • Follow Angular style guide
  • Use TypeScript strict mode
  • Write meaningful commit messages
  • Include unit tests for new features

Review Process

  1. Automated checks (CI/CD)
  2. Code review by maintainers
  3. Testing on multiple devices
  4. Documentation review
  5. Merge after approval

๐Ÿ”ฎ Roadmap

๐ŸŽฏ Upcoming Features

Phase 1 (Q1 2025)

  • Mobile app with Capacitor
  • Advanced product filtering
  • Wishlist sharing
  • Order tracking enhancements
  • Performance optimizations

Phase 2 (Q2 2025)

  • AI-powered recommendations
  • Voice search integration
  • Augmented Reality product preview
  • Multi-vendor marketplace
  • Advanced analytics dashboard

Phase 3 (Q3 2025)

  • Blockchain-based loyalty program
  • Social commerce features
  • Advanced personalization
  • Machine learning insights
  • IoT device integration

๐ŸŽจ Design Improvements

  • Enhanced micro-animations
  • Advanced gesture support
  • Dark mode refinements
  • Accessibility enhancements

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“‹ License Summary

  • โœ… Commercial use allowed
  • โœ… Modification allowed
  • โœ… Distribution allowed
  • โœ… Private use allowed

๐Ÿ› ๏ธ Technology Partners

  • Angular Team - For the incredible framework
  • NX Team - For the powerful monorepo tools
  • PrimeNG Team - For the comprehensive UI components
  • Vercel - For the excellent hosting platform

๐ŸŒŸ Special Thanks

  • All beta testers and early adopters
  • Community contributors and supporters
  • Open source projects that inspired Rose
  • Design community for feedback and inspiration

๐ŸŒน Built with โค๏ธ by the Rose Team

Star โญ this repository if you found it helpful!

๐ŸŒŸ Star on GitHub โ€ข ๐ŸŒ View Demo โ€ข ๐Ÿ“š Read Docs

results matching ""

    No results matching ""