Skip to content

JonathanHarford/exquisite.monster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License

exquisite.monster is a digital adaptation of the popular party game "Eat Poop You Cat" (also known as Telephone Pictionary). It is a multiplayer game where a concept mutates as turns alternate between the drawing of a caption and the captioning of a drawing.

Play here!

Features

  • Multiplayer Gameplay: Play with strangers in a turn-based format.
  • Party Mode (Beta): Organize private games with friends.
  • Flexible Configuration: Customize turn limits, timeouts, and content settings (e.g., "lewd" mode).
  • Rich Interaction: Upload drawings from photos or apps, or (if you must) draw using a built-in canvas.
  • Moderation: Community flagging system to keep the environment safe.
  • Social: Follow players, mark favorite games, and leave comments.
  • Notifications: Real-time alerts via server-sent events for turn updates and game completions.
  • Responsive Design: Mobile friendly, of course!

exquisite.monster gallery screenshot

Tech Stack

  • Framework: SvelteKit
  • Language: TypeScript
  • Database: PostgreSQL (via Supabase)
  • ORM: Prisma
  • Authentication: Clerk
  • Background Jobs: BullMQ & Redis
  • Styling: Tailwind CSS & Flowbite
  • Testing: Vitest (Unit & Integration) & Playwright (E2E)

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/JonathanHarford/exquisite.monster.git
    cd exquisite.monster
  2. Install dependencies:

    npm install
  3. Environment Setup: Copy the example environment file:

    cp .env.example .env

    You will need to fill in the required environment variables in .env, specifically for Clerk (PUBLIC_CLERK_PUBLISHABLE_KEY, CLERK_SECRET_KEY) and your database and redis connection strings.

  4. Initialize Database: Apply migrations and seed initial data:

    npx prisma migrate dev
    npx prisma db seed
  5. Run the Application: Start the development server:

    npm run dev

    The application should now be running at http://localhost:5173.

Testing

npm run test:unit
npm run test:integration
npm run test:e2e

Architecture

This project follows a Clean Architecture pattern:

  • Routes (src/routes/): SvelteKit pages and endpoints.
  • Use Cases (src/lib/server/usecases/): Business logic orchestration.
  • Services (src/lib/server/services/): Domain-specific operations.
  • Database (src/lib/server/database/): Data access abstraction.

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

License

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

exquisite.monster sketch screenshot exquisite.monster upload screenshot

About

exquisite.monster is a digital adaptation of the popular party game "Eat Poop You Cat" (also known as Telephone Pictionary). It is a multiplayer game where a concept mutates as turns alternate between the drawing of a caption and the captioning of a drawing.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors