Discover artworks tailored just for you.
- 🎨 Artwork Discovery: Browse through a curated collection of 81,000+ artworks from various artists and genres
- 🔍 Smart Search: Full-text search across artwork titles, artists, and genres with instant results
- 🤖 AI-Powered Recommendations: Get personalized artwork suggestions based on your selection using deep learning models
- ❤️ Like System: Save your favorite artworks and get better recommendations over time
- 🎲 Feeling Lucky: Discover random artworks when you're in an exploratory mood
- 🚀 Fast & Responsive: Modern React frontend with optimized API performance
- 🐳 Docker Ready: One-command deployment
- 🔒 Production Ready: Scalable FastAPI backend with health checks and proper error handling
artscout/
├── backend/ # FastAPI backend server
│ ├── api/ # REST API endpoints and routing
│ ├── db/ # Database queries and connection management
│ ├── models/ # SQLAlchemy models and Pydantic schemas
│ ├── services/ # Business logic and recommendation engine
│ ├── tests/ # Backend test suite
│ └── utils/ # Helper functions and utilities
├── frontend/ # React web application
│ ├── public/ # Static assets and manifest
│ └── src/ # Source code
│ ├── assets/ # Images, fonts, and static resources
│ ├── components/ # React components
│ │ ├── artwork/ # Artwork-specific components
│ │ ├── layout/ # Layout and navigation components
│ │ ├── modals/ # Modal dialogs and overlays
│ │ └── ui/ # Reusable UI components
│ ├── contexts/ # React context providers
│ ├── hooks/ # Custom React hooks
│ ├── pages/ # Route-level page components
│ ├── services/ # API client and external services
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Frontend utility functions
├── docker-compose.yml # Production deployment configuration
└── pyproject.toml # Project dependencies and configuration
Ensure you have the following installed:
- Python 3.11+ - Download Python
- Node.js 16+ - Download Node.js (for web frontend)
- Git - Install Git
- Docker (optional) - Install Docker (for production deployment)
The fastest way to get ArtScout running with automatic database setup:
-
Clone
git clone https://gitlab.com/timothewt/artscout.git cd artscout -
Set the environment variables
Create a
.envfile based on.env.example:cp .env.example .env # Edit .env to set your API URLs -
Build and launch
# Clean start (recommended) docker compose down -v docker compose build --no-cache docker compose up -
Access the app
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:8000 - API Docs:
http://localhost:8000/docs
- Frontend:
For local development and customization:
-
Clone the repository
git clone https://gitlab.com/timothewt/artscout.git cd artscout -
Install Python dependencies
Choose the installation that matches your needs:
# Base installation pip install -e . # For app development pip install -e ".[dev]"
-
Install frontend dependencies
cd ./frontend npm install cd ../
-
Start the development servers
Backend (Terminal 1):
uvicorn backend.main:app --reload --port 8000 --host 0.0.0.0
Frontend (Terminal 2):
cd ./frontend npm run dev -
Open your browser to
http://localhost:5173
- PyTorch - For the recommender system
- FastAPI - Modern, fast framework for APIs
- React - Component-based frontend framework
- Timothé Watteau - timothe.wt@gmail.com
This project is under license Apache 2.0.