{"id":25409343,"url":"https://github.com/dracudev/gavilan-shop","last_synced_at":"2026-04-11T02:02:20.971Z","repository":{"id":277187516,"uuid":"931618836","full_name":"dracudev/gavilan-shop","owner":"dracudev","description":"Digitalization of \"El Gavilán\", enhancing its online presence while preserving its local heritage.","archived":false,"fork":false,"pushed_at":"2025-06-08T11:42:20.000Z","size":24045,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-15T14:08:57.561Z","etag":null,"topics":["nextjs","react","reactjs","stripe","supabase","tailwindcss","typescript","zustand"],"latest_commit_sha":null,"homepage":"https://gavilan-shop.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dracudev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-12T15:26:11.000Z","updated_at":"2025-06-08T11:42:23.000Z","dependencies_parsed_at":"2025-02-12T16:33:40.752Z","dependency_job_id":"29ecae18-516b-4a3f-9d5e-dd72115fc510","html_url":"https://github.com/dracudev/gavilan-shop","commit_stats":null,"previous_names":["dracudev/gavilan-shop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dracudev/gavilan-shop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fgavilan-shop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fgavilan-shop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fgavilan-shop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fgavilan-shop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dracudev","download_url":"https://codeload.github.com/dracudev/gavilan-shop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fgavilan-shop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263480868,"owners_count":23473164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs","react","reactjs","stripe","supabase","tailwindcss","typescript","zustand"],"created_at":"2025-02-16T08:27:43.778Z","updated_at":"2026-04-11T02:02:20.962Z","avatar_url":"https://github.com/dracudev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# El Gavilán | E-commerce Platform\r\n\r\n![El Gavilán](public/img/gav-mockup.png)\r\n\r\n\u003e A modern e-commerce platform for a traditional hat shop established in 1880, blending heritage with contemporary digital experiences.\r\n\r\n[![Live Demo](https://img.shields.io/badge/Live%20Demo-gavilan--shop.vercel.app-blue?style=for-the-badge\u0026logo=vercel)](https://gavilan-shop.vercel.app)\r\n[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg?style=for-the-badge)](https://creativecommons.org/licenses/by-nc/4.0/)\r\n\r\n## Table of Contents\r\n\r\n- [About](#about)\r\n- [Features](#features)\r\n- [Tech Stack](#tech-stack)\r\n- [Architecture](#architecture)\r\n- [Design System](#design-system)\r\n- [Progressive Web App](#progressive-web-app)\r\n- [Roadmap](#roadmap)\r\n\r\n## About\r\n\r\nThis project represents the digital transformation of a traditional hat shop from Alicante, Spain, with over 145 years of craftsmanship heritage. This e-commerce platform seamlessly blends traditional elegance with cutting-edge web technologies, providing customers with an intuitive shopping experience while maintaining the shop's authentic brand identity.\r\n\r\n## Features\r\n\r\n- **Product Catalog** - Advanced filtering, search, and browsing with image carousels\r\n- **Shopping Cart \u0026 Checkout** - Persistent cart with secure Stripe payment processing\r\n- **User Authentication** - Supabase Auth with role-based access (customer/admin)\r\n- **Responsive Design** - Mobile-first with dark/light mode switching\r\n- **Admin Dashboard** - Complete product, order, and user management\r\n- **Progressive Web App** - Offline functionality and native app experience\r\n- **Real-time Updates** - Live cart updates and order tracking\r\n- **Security** - SSL encryption, GDPR compliance, and data protection\r\n\r\n## Tech Stack\r\n\r\n### **Frontend**\r\n\r\n- Next.js 15.2.4\r\n- React 19.0.0\r\n- TypeScript 5\r\n- Tailwind CSS 3.4.1\r\n\r\n### **Backend \u0026 Database**\r\n\r\n- Supabase\r\n- Supabase Auth\r\n- Stripe\r\n\r\n### **State Management \u0026 UI**\r\n\r\n- Zustand 5.0.3\r\n- React Icons 5.4.0\r\n- Swiper 11.2.3\r\n- Framer Motion 12.23.12\r\n- clsx\r\n\r\n### **Development \u0026 Testing**\r\n\r\n- Jest 29.7.0\r\n- React Testing Library\r\n- ESLint\r\n\r\n### **Build \u0026 Deployment**\r\n\r\n- Turbopack\r\n- Webpack 5\r\n- PostCSS\r\n- next-pwa\r\n- Vercel\r\n\r\n## Architecture\r\n\r\n### **Project Structure**\r\n\r\n```tree\r\ngavilan-shop/\r\n├── src/\r\n│   ├── app/                    # Next.js App Router\r\n│   │   ├── (locale)/          # Localized routes\r\n│   │   ├── api/               # API routes\r\n│   │   └── globals.css        # Global styles \u0026 CSS variables\r\n│   ├── components/            # React components\r\n│   │   ├── product/          # Product-specific components\r\n│   │   ├── products/         # Product listing components\r\n│   │   └── ui/               # Reusable UI components\r\n│   ├── services/             # External service integrations\r\n│   │   ├── supabase/         # Database \u0026 auth services\r\n│   │   └── stripe/           # Payment processing\r\n│   ├── store/                # Zustand state management\r\n│   ├── hooks/                # Custom React hooks\r\n│   ├── interfaces/           # TypeScript type definitions\r\n│   ├── utils/                # Utility functions\r\n│   └── middleware.ts         # Route protection \u0026 auth\r\n├── public/                   # Static assets\r\n```\r\n\r\n## Design System\r\n\r\n### **Color**\r\n\r\n- **Primary** (#bb8a64): Warm leather tones for brand actions\r\n- **Secondary** (#829ab5): Blue-gray for supporting elements  \r\n- **Accent** (#8b2635): Burgundy for call-to-actions\r\n- **Extended**: 50 variants per color (50-900) plus semantic states\r\n\r\n### **Typography**\r\n\r\n- **Brand Font** (Glorius): Custom font for titles and brand elements\r\n- **Serif** (Playfair Display): Elegant headings\r\n- **Body** (Inter): Clean, readable interface text\r\n- **Scale**: 12px-48px with responsive sizing\r\n\r\n### **Components**\r\n\r\n- **Buttons**: 5 variants × 3 sizes with complete state management\r\n- **Cards**: 3 variants with header/content/footer sub-components\r\n- **Forms**: Full validation states with ARIA accessibility\r\n- **Navigation**: Responsive navbar/sidebar with backdrop effects\r\n\r\n### **Dark Mode**\r\n\r\n- CSS custom properties for seamless theme switching\r\n- System preference detection with persistent user choice\r\n- WCAG AA contrast compliance in both themes\r\n\r\n### **Responsive \u0026 Animation**\r\n\r\n- Mobile-first design (1-4 column grids)\r\n- GPU-accelerated micro-interactions\r\n\r\n## Progressive Web App\r\n\r\nEl Gavilán is built as a Progressive Web App with:\r\n\r\n- **Service Worker**: Offline functionality and caching strategies\r\n- **Web Manifest**: Installation prompts and native app feel\r\n- **Responsive Design**: Works seamlessly across all devices\r\n- **Performance Optimizations**: Code splitting and lazy loading\r\n\r\n## Roadmap\r\n\r\n### **Phase 1: Foundation**\r\n\r\n- [x] Core e-commerce functionality\r\n- [x] User authentication\r\n- [x] Payment processing\r\n- [x] Responsive design\r\n- [x] Basic admin panel\r\n\r\n### **Phase 2: Enhancement**\r\n\r\n- [x] Dark mode implementation\r\n- [x] Error handling system\r\n- [x] Testing framework setup\r\n- [ ] Performance optimizations\r\n- [ ] SEO improvements\r\n\r\n### **Phase 3: Advanced Features**\r\n\r\n- [ ] **Internationalization**: Multi-language support with DeepL API\r\n- [ ] **AI Integration**: Smart product recommendations and chatbot\r\n- [ ] **Analytics**: Advanced reporting and insights\r\n- [ ] **Reviews System**: Customer feedback and ratings\r\n- [ ] **Wishlist**: Save items for later\r\n- [ ] **Email Marketing**: Automated campaigns\r\n\r\n### **Phase 4: Scale \u0026 Optimize**\r\n\r\n- [ ] **E2E Testing**: Playwright/Cypress implementation\r\n- [ ] **Performance**: Core Web Vitals optimization\r\n- [ ] **Accessibility**: WCAG 2.1 AA compliance\r\n- [ ] **OAuth**: Social login integration\r\n- [ ] **Advanced Search**: Elasticsearch integration\r\n- [ ] **Real-time Features**: Live inventory updates\r\n\r\n## License\r\n\r\nThis project is licensed under the [Creative Commons Attribution-NonCommercial 4.0 International License](LICENSE).\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdracudev%2Fgavilan-shop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdracudev%2Fgavilan-shop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdracudev%2Fgavilan-shop/lists"}