Skip to content

galbria/moodboard

Repository files navigation

MoodBoard

An AI-powered visual moodboard application. Drop images onto the canvas and get automatic AI-generated captions using Google Gemini.

Features

  • Drag & Drop - Simply drop images from your computer onto the canvas
  • AI Captioning - Images are automatically captioned using Google Gemini
  • Visual Canvas - Arrange, drag, and organize your images freely
  • Persistent Storage - Images and captions stored in MongoDB

Quick Start with Docker

  1. Set your Gemini API key:

    export GEMINI_API_KEY=your_api_key_here
  2. Start all services:

    make up
  3. Open the app:

Development Setup

Prerequisites

  • Python 3.13+
  • Node.js 20+
  • MongoDB (local or Docker)
  • uv for Python package management

Install Dependencies

make install

Start MongoDB (if not running)

make mongo

Run Development Servers

export GEMINI_API_KEY=your_api_key_here
make dev

This starts:

Available Commands

Run make help to see all available commands:

Command Description
make install Install all dependencies
make dev Run both frontend and backend in dev mode
make dev-backend Run backend only
make dev-frontend Run frontend only
make build Build Docker images
make up Start all services with Docker
make down Stop all services
make logs View logs from all services
make clean Remove build artifacts and volumes

Architecture

moodboard/
├── backend/
│   ├── main.py          # FastAPI app and routes
│   ├── database.py      # MongoDB operations
│   ├── captioning.py    # Gemini integration
│   └── models.py        # Pydantic schemas
├── frontend/
│   └── src/
│       └── App.tsx      # React application
├── docker-compose.yml   # Docker orchestration
└── Makefile            # Build automation

API Endpoints

Method Endpoint Description
POST /upload Upload an image for captioning
GET /images List all images with captions
GET /images/{id} Get a single image
DELETE /images/{id} Delete an image
GET /health Health check

Environment Variables

Variable Description Default
GEMINI_API_KEY Google Gemini API key Required
MONGODB_URL MongoDB connection string mongodb://localhost:27017

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors