canadian-alternatives/README.md

2.7 KiB

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.