A modern, responsive e-commerce storefront built with Angular 20 and Supabase. This application provides a complete shopping experience with product browsing, cart management, and checkout functionality.
- Product Catalog: Browse products with filtering by categories
- Product Details: Detailed product view with image gallery and stock information
- Shopping Cart: Add, remove, and modify items in your cart
- Checkout Process: Complete order placement with customer information
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Real-time Updates: Live stock updates and cart synchronization
- Guest Shopping: Shop without registration using session-based cart
- Modern UI: Built with Tailwind CSS and smooth animations
- Frontend: Angular 20 with TypeScript
- Styling: Tailwind CSS with custom animations
- Backend: Supabase (PostgreSQL database with real-time capabilities)
- Authentication: Supabase Auth (optional - supports guest shopping)
- Build Tool: Angular CLI
- Package Manager: npm
Before running this project, make sure you have the following installed:
- Node.js (version 18 or higher)
- npm (comes with Node.js)
- Angular CLI (
npm install -g @angular/cli)
git clone https://github.com/aminmguidich/e-commerce-storefront.git
cd e-commerce-storefrontnpm install- Create a new project at Supabase
- Run the migration script located in
supabase/migrations/20251005143654_create_ecommerce_schema.sql - Create a
.envfile in the root directory with your Supabase configuration:
SUPABASE_URL=your_supabase_project_url
SUPABASE_ANON_KEY=your_supabase_anon_keyUpdate the Supabase configuration in your Angular environment files:
// src/environments/environment.ts
export const environment = {
production: false,
supabaseUrl: 'your_supabase_project_url',
supabaseKey: 'your_supabase_anon_key'
};npm startNavigate to http://localhost:4200/ to view the application.
src/
βββ app/
β βββ components/ # Feature components
β β βββ cart/ # Shopping cart component
β β βββ categories/ # Product categories
β β βββ checkout/ # Checkout process
β β βββ footer/ # Footer component
β β βββ header/ # Header with navigation
β β βββ product-details/ # Product detail modal
β β βββ product-list/ # Product catalog
β βββ models/ # TypeScript interfaces
β βββ services/ # Business logic services
β βββ shared/ # Shared components and utilities
β βββ components/ # Reusable UI components
β βββ styles/ # Global styles
βββ supabase/
β βββ migrations/ # Database schema
βββ screenshots/ # Application screenshots
npm start- Start the development servernpm run build- Build the project for productionnpm run ng- Run Angular CLI commands
The project uses Tailwind CSS for styling. You can customize the design by:
- Modifying
tailwind.config.jsfor global theme changes - Updating component-specific CSS files
- Modifying the global styles in
src/global_styles.css
Products are stored in Supabase. You can:
- Add new products through the Supabase dashboard
- Modify the product model in
src/app/models/product.model.ts - Update the sample data in the migration file
The application uses the following main tables:
- products: Product information (name, price, description, stock, etc.)
- cart_items: Shopping cart items linked to user sessions
- orders: Order information and customer details
- order_items: Individual items within orders
npm run build:prodThe build artifacts will be stored in the dist/demo/ directory.
This project is optimized for Vercel deployment:
-
Quick Deploy:
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy automatically
-
Manual Configuration:
- Build Command:
npm run build:prod - Output Directory:
dist/demo - Framework Preset: Other
- Build Command:
For detailed deployment instructions, see DEPLOYMENT.md.
This Angular application can also be deployed to:
- Netlify: Connect your repository and deploy automatically
- GitHub Pages: Use GitHub Actions for automated deployment
- Firebase Hosting: Deploy using Firebase CLI
- AWS S3: Upload build files to S3 with CloudFront
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or run into issues, please:
- Check the existing issues in the repository
- Create a new issue with a detailed description
- Include steps to reproduce any bugs
- Angular team for the amazing framework
- Supabase for providing an excellent backend-as-a-service
- Tailwind CSS for the utility-first CSS framework
- Pexels for providing sample product images
Made with β€οΈ using Angular and Supabase




