تفاصيل العمل

Overview

Stack Commerce covers the full customer and admin path of an online store — register, confirm email, browse, cart, check out, pay, review — with a Django REST API on one side and an Angular standalone workspace on the other, coordinated through a shared API contract.

What it does

Accounts — registration with unique email and phone, email confirmation before first login, login with either identifier, and JWT access/refresh tokens across Customer and Admin roles.

Catalogue — product listing and detail, search, filtering, categories, images, prices, and stock state.

Carts — an authenticated server-side cart, plus a guest cart kept entirely on the frontend until checkout submission.

Checkout — registered and guest checkout, order creation with stock revalidation at submit time, and order-item snapshots so historical orders stay accurate when the catalogue changes.

Payments — one card provider, cash on delivery, and wallet balance.

Reviews — product reviews and ratings with admin moderation.

Admin — user management, catalogue management, order and payment visibility, and review moderation.

Architecture

The backend keeps domain code under server/apps/, business workflows in services.py, and read/query composition in selectors.py, leaving views to orchestrate HTTP only. Dependencies and the virtualenv are managed with uv, and the database is configured entirely through environment variables.

The Angular client is standalone-component based: feature code under src/app/features/, API services, guards, interceptors and shared models under src/app/core/, reusable UI under src/app/shared/, with lazy feature routes as the app grows.

Security decisions worth naming: raw card numbers and CVVs are never stored, auth / payment / review-submission endpoints are rate-limited, and product image uploads are validated for type and size.

My contribution

One of four developers, contributing across the Django API and the Angular client.

بطاقة العمل