/carhive

A car rental website built with Next.js (App Router) and TypeScript featuring dynamic routing, a responsive UI with Tailwind CSS, Clerk authentication, Vercel Postgres, Drizzle ORM, and Cloudinary for images. It includes search filters, an infinite logo slider, and Stripe integration

Primary LanguageTypeScriptMIT LicenseMIT

Carhive

Warning This project is a work in progress and may not function consistently. It is primarily a testing demo created for educational purposes and to explore new technologies.

carhive

Features

  • Dynamic Routing
  • Server Components and Server Actions
  • Loading UI and Streaming with Suspense for a smoother user experience
  • SEO-friendly metadata
  • Fully responsive design
  • Styled with Tailwind CSS
  • UI components built with Shadcn/ui
  • Interactive maps using Leaflet
  • User authentication and management via Clerk
  • Serverless SQL powered by Vercel Postgres (and Neon)
  • Image Management through Cloudinary
  • Infinite Logo Slider
  • Search functionality with data filtering capabilities
  • Code Linting for consistent formatting
  • Written in TypeScript for enhanced type safety
  • Drizzle ORM for type-safe database interaction, schema generation, and migrations
  • Stripe integration for payment processing

Requirements

Ensure the following are installed:

  • Node.js (v18+)
  • pnpm as the package manager

Prerequisites

Before running the app, make sure you have:

Running the Project Locally

  1. Install dependencies:
pnpm install
  1. Set up environment variables:
  • Copy the .env.example file to .env at the root of the project:

    cp .env.example .env
  • Update the .env file with your configuration details.

  1. Generate the database:
pnpm db:generate
  1. Seed the initial data:
pnpm db:seed
  1. Start the development server:
pnpm dev