Skip to content

gitwithuli/shemodi

Repository files navigation

GE Market - Georgian Marketplace

A modern, fast, mobile-first classifieds marketplace for Georgia. Built with Next.js 14, designed for speed.

Features

  • 🚀 Blazing Fast - Edge-rendered, optimized for Core Web Vitals
  • 📱 Mobile-First - PWA-ready, installable on home screen
  • 🌍 Multi-Language - Georgian, Russian, English
  • 🔍 Instant Search - Meilisearch-powered with filters
  • 💎 Premium Design - Clean, modern UI with smooth animations

Tech Stack

  • Framework: Next.js 14 (App Router)
  • Styling: Tailwind CSS
  • Database: PostgreSQL (Neon)
  • ORM: Drizzle
  • Search: Meilisearch
  • Animations: Framer Motion
  • Icons: Heroicons
  • i18n: next-intl

Quick Start

1. Install dependencies

cd ge-marketplace
npm install

2. Set up environment variables

Copy .env.example to .env.local and fill in your values:

cp .env.example .env.local

Required variables:

# Database (Neon Postgres)
DATABASE_URL=postgresql://user:password@host/database?sslmode=require

# Meilisearch (optional - falls back to sample data)
MEILISEARCH_HOST=https://your-instance.meilisearch.io
MEILISEARCH_API_KEY=your-api-key

3. Set up database

Create a free Neon database at neon.tech, then:

# Push schema to database
npm run db:push

# Seed with sample data
npm run seed

4. Run development server

npm run dev

Open http://localhost:3000

Project Structure

src/
├── app/
│   ├── [locale]/           # Localized routes
│   │   ├── page.tsx        # Home
│   │   ├── search/         # Search results
│   │   └── listings/       # Listing detail
│   ├── api/                # API routes
│   └── globals.css         # Global styles
├── components/
│   ├── ui/                 # Reusable UI (Button, Input, etc.)
│   ├── layout/             # Header, Footer, Navigation
│   ├── listings/           # Listing cards, grids
│   └── search/             # Search bar, filters
├── lib/
│   ├── db/                 # Database schema & connection
│   ├── search/             # Meilisearch client
│   └── utils.ts            # Helpers
├── locales/                # Translation files
└── scripts/
    └── seed.ts             # Database seeding

Available Scripts

Command Description
npm run dev Start development server
npm run build Production build
npm run start Start production server
npm run lint Run ESLint
npm run db:push Push schema to database
npm run db:studio Open Drizzle Studio
npm run seed Seed database

Environment Setup

Neon Database (Required)

  1. Create account at neon.tech
  2. Create new project
  3. Copy connection string to DATABASE_URL

Meilisearch (Optional)

For production search functionality:

  1. Create account at cloud.meilisearch.com
  2. Create new project
  3. Copy host URL and API key to environment

Without Meilisearch, the app falls back to sample data filtering.

Deployment

Vercel (Recommended)

  1. Push to GitHub
  2. Import to Vercel
  3. Add environment variables
  4. Deploy

Other Platforms

Build and start:

npm run build
npm run start

Design System

Colors

Name Value Usage
Ink #1e3a5f Primary, headings
Terracotta #c4704a Accent, highlights
Cream #faf8f5 Background
Stone #e8e4de Borders
Charcoal #1a1a1a Body text
Mist #6b7280 Secondary text

Typography

  • Headings: Manrope (700, 800)
  • Body: Work Sans (400, 500, 600)

Roadmap

  • Core marketplace (browse, search, detail)
  • Multi-language support
  • Responsive design
  • PWA manifest
  • User authentication
  • Listing creation flow
  • Real-time messaging
  • Payment integration
  • Native apps (React Native)

Contributing

  1. Fork the repository
  2. Create feature branch
  3. Commit changes
  4. Push to branch
  5. Open pull request

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •