Thanks to visit codestin.com
Credit goes to github.com

Skip to content

hayshin/meeplix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Meeplix

A modern full-stack web application for creating and playing card-based storytelling games, featuring AI-powered content generation and real-time multiplayer gameplay.

๐ŸŽฏ About

Meeplix is a digital platform inspired by storytelling games like Dixit, where players use creative prompts and images to tell stories, vote, and compete in rounds of imaginative gameplay. The platform combines modern web technologies with AI-powered content generation to create unique gaming experiences.

โœจ Features

  • ๐ŸŽจ AI-Powered Content Generation: Generate creative Dixit-style prompts using Google Gemini AI
  • ๐ŸŽฎ Real-time Multiplayer Gameplay: Play with friends in real-time game sessions
  • ๐Ÿƒ Custom Deck Management: Create and manage custom card decks
  • ๐ŸŒ Internationalization: Multi-language support with Paraglide.js
  • ๐Ÿ” Secure Authentication: User authentication and session management
  • ๐Ÿ“ฑ Responsive Design: Works seamlessly across desktop and mobile devices
  • ๐ŸŽฏ Type-Safe Development: End-to-end type safety with shared types

๐Ÿ› ๏ธ Tech Stack

Frontend

Backend

  • Elysia - Fast and type-safe backend framework
  • Bun - JavaScript runtime and package manager
  • TypeBox - JSON Schema validation
  • Drizzle ORM - Type-safe database ORM
  • PostgreSQL - Relational database

AI & Services

Development & Deployment

  • Docker - Containerization for PostgreSQL
  • Biome - Code formatting and linting
  • Cocogitto - Conventional Commits
  • Eden - End-to-end type safety

๐Ÿš€ Getting Started

Prerequisites

  • Bun (recommended) or Node.js 18+
  • Docker for database
  • Google Gemini API key
  • Runware API key
  • Azure Storage account (optional)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/meeplix.git
    cd meeplix
  2. Install dependencies

    bun install
  3. Start the database

    docker-compose up -d postgres
  4. Set up environment variables

    # Copy example env files and configure
    cp server/.env.example server/.env
    cp client/.env.example client/.env
  5. Run database migrations

    cd server
    bun run db:push
  6. Start development servers

    # Terminal 1 - Backend
    cd server
    bun run dev
    
    # Terminal 2 - Frontend
    cd client
    bun run dev

Environment Variables

Server (server/.env)

DATABASE_URL="postgresql://meeplix_user:meeplix_password@localhost:5432/meeplix_db"
GEMINI_API_KEY="your-gemini-api-key"
AZURE_STORAGE_CONNECTION_STRING="your-azure-connection-string"

Client (client/.env)

PUBLIC_API_URL="http://localhost:3000"

๐Ÿ“ Project Structure

meeplix/
โ”œโ”€โ”€ client/                 # SvelteKit frontend application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ lib/           # Shared components and utilities
โ”‚   โ”‚   โ”œโ”€โ”€ routes/        # SvelteKit file-based routing
โ”‚   โ”‚   โ””โ”€โ”€ app.html       # HTML template
โ”‚   โ”œโ”€โ”€ static/            # Static assets
โ”‚   โ””โ”€โ”€ package.json
โ”œโ”€โ”€ server/                 # Elysia backend application
โ”‚   โ”œโ”€โ”€ src/               # Server source code
โ”‚   โ”œโ”€โ”€ drizzle/           # Database migrations
โ”‚   โ””โ”€โ”€ package.json
โ”œโ”€โ”€ shared/                 # Shared types and utilities
โ”‚   โ”œโ”€โ”€ api.ts             # API type definitions
โ”‚   โ”œโ”€โ”€ models/            # Database models
โ”‚   โ””โ”€โ”€ utils.ts           # Shared utilities
โ”œโ”€โ”€ ai/                     # AI integration modules
โ”‚   โ”œโ”€โ”€ gemini/            # Google Gemini integration
โ”‚   โ”œโ”€โ”€ runware/           # Runware image generation
โ”‚   โ””โ”€โ”€ azure/             # Azure storage integration
โ””โ”€โ”€ docker-compose.yml     # Development database setup

๐ŸŽฎ Game Features

AI Prompt Generation

Generate creative storytelling prompts using Google Gemini AI:

# Interactive prompt generation
bun run dixit-prompts

# Generate prompts for specific topic
bun run dixit-prompts-simple "nature"

Deck Management

  • Create custom card decks
  • Import/export deck configurations
  • AI-generated card content
  • Community deck sharing

Multiplayer Gameplay

  • Real-time game sessions
  • Voting mechanics
  • Score tracking
  • Round-based gameplay

๐Ÿ› ๏ธ Development

Database Operations

# Generate migrations
bun run db:generate

# Apply migrations
bun run db:migrate

# Push schema changes
bun run db:push

# Open Drizzle Studio
bun run db:studio

Building

# Build frontend
cd client && bun run build

# Build backend
cd server && bun run build

๐ŸŒ Internationalization

The project supports multiple languages using Paraglide.js:

# Compile translations
cd client && bun run paraglide:compile

Translation files are located in client/messages/ directory.

๐Ÿณ Deployment

Production Build

# Build all packages
bun run build

# Start production server
bun run start

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

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

๐Ÿ™ Acknowledgments

  • Inspired by the creativity of Dixit and similar storytelling games
  • Built with modern web technologies and AI integration
  • Community feedback and contributions

Made with โค๏ธ for creative storytellers and game enthusiasts

About

Main repository of meeplix website

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published