Go to file
boilerrat 8ac97f64fb feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
.cursor/rules Setup project dependencies and initial structure for Canadian Alternatives app 2025-03-04 22:07:10 -05:00
public feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
src feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
supabase/migrations feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
.gitignore Set up Supabase client configuration for self-hosted instance 2025-03-04 22:46:15 -05:00
README.md Setup project dependencies and initial structure for Canadian Alternatives app 2025-03-04 22:07:10 -05:00
components.json Setup project dependencies and initial structure for Canadian Alternatives app 2025-03-04 22:07:10 -05:00
database-setup.sql feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
eslint.config.mjs Initial commit from Create Next App 2025-03-04 21:06:31 -05:00
next.config.ts Initial commit from Create Next App 2025-03-04 21:06:31 -05:00
package-lock.json feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
package.json feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
postcss.config.js feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
postcss.config.mjs Initial commit from Create Next App 2025-03-04 21:06:31 -05:00
tailwind.config.ts feat: Implement theme system and improve UI components - Add theme provider and toggle, fix select component, add product search, auth components, and Supabase integration 2025-03-04 23:54:05 -05:00
tsconfig.json Initial commit from Create Next App 2025-03-04 21:06:31 -05:00

README.md

Canadian Alternatives

A web application that helps users find Canadian-made alternatives to American products. This project aims to support Canadian businesses and entrepreneurs by promoting locally made products and identifying market opportunities.

Features

  • Search for American products and find their Canadian alternatives
  • Browse products by category
  • View detailed product information and alternatives
  • Discover business opportunities for Canadian entrepreneurs
  • Submit new business opportunity suggestions

Tech Stack

  • Frontend: Next.js 14 (App Router), React, TypeScript
  • UI Components: Shadcn UI, Tailwind CSS, Framer Motion
  • Database: Supabase
  • Form Handling: React Hook Form, Zod
  • State Management: React Server Components, URL state with nuqs

Getting Started

Prerequisites

  • Node.js 18.17 or later
  • npm or yarn
  • Supabase account (for database)

Environment Setup

Create a .env.local file in the root directory with the following variables:

NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/canadian-alternatives.git
    cd canadian-alternatives
    
  2. Install dependencies:

    npm install
    # or
    yarn install
    
  3. Run the development server:

    npm run dev
    # or
    yarn dev
    
  4. Open http://localhost:3000 in your browser to see the application.

Database Schema

The application uses the following Supabase tables:

Products

  • id: string (UUID)
  • name: string
  • description: string
  • company: string
  • country_of_origin: string
  • category: string
  • image_url: string (optional)
  • created_at: timestamp

Alternatives

  • id: string (UUID)
  • product_id: string (references Products.id)
  • name: string
  • description: string
  • company: string
  • category: string
  • image_url: string (optional)
  • created_at: timestamp

Opportunities

  • id: string (UUID)
  • category: string
  • description: string
  • created_at: timestamp

Deployment

This application can be deployed to any hosting platform that supports Next.js applications, such as Vercel, Netlify, or a VPS.

Deploying to Vercel

  1. Push your code to a GitHub repository
  2. Import the project in Vercel
  3. Configure environment variables
  4. Deploy

Deploying to a VPS

  1. Build the application:

    npm run build
    
  2. Start the production server:

    npm start
    

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

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