discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
golmenero/ratelog · source
Snapshot 0 · 2026-11-04T12:47:28Z · Kotlin · AGPL-3.0
Content fingerprint
8a28f57b7b19e07d60677fdc3c52d121462ee5440f666b4e6398027a5a196e11GitHub description at capture
App for user rating of media
README at capture
<p align="center"> <img alt="Screenshot" src="assets/banner.svg" width="300"/> </p> <p align="center"> <!-- REPLACE: Update badges with your actual repository URLs --> <a href="https://github.com/golmenero/ratelog"> <img alt="License" src="https://img.shields.io/github/license/golmenero/ratelog.svg"/> </a> <a href="https://github.com/golmenero/ratelog/releases"> <img alt="Current Release" src="https://img.shields.io/github/release/golmenero/ratelog.svg"/> </a> <a href="https://github.com/golmenero/ratelog/actions/workflows/ci.yml"> <img alt="CI Status" src="https://img.shields.io/github/actions/workflow/status/golmenero/ratelog/ci.yml.svg"/> </a> <a href="https://www.buymeacoffee.com/golmenero"> <img alt="Buy Me a Coffee" src="https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?logo=buymeacoffee&logoColor=black"/> </a> </p> --- Ratelog is a web application that lets you search for movies and TV shows on TMDB, rate them across multiple categories, and generate ranked top lists. It supports multi-user accounts with authentication, a dark-themed responsive UI, and follows/tracking for upcoming releases. No premium tiers, no hidden features — just a straightforward tool to track and rank what you watch. > **Disclaimer:** This is a man-driven project, heavily supported by AI-assisted development. All code is manually reviewed by the maintainers before being merged. <strong>Want to get started?</strong><br/> Check out the <a href="#installation-guide">installation guide</a>.<br/> <strong>Something not working right?</strong><br/> Open an <a href="https://github.com/golmenero/ratelog/issues">Issue</a> on GitHub.<br/> <strong>Want to contribute?</strong><br/> Check out the contributing guide (coming soon).<br/> <strong>New idea or improvement?</strong><br/> Open a <a href="https://github.com/golmenero/ratelog/discussions">Discussion</a> on GitHub.<br/> --- ## Features ### Discovery & Tracking - **Search** — Find movies and TV shows via TMDB's API - **Follow** — Track upcoming releases and see them on the premieres page (grouped by Released / Upcoming / No Date) ### Rating System - **Rate by category** — Score each title from 1 to 10 (0.25 steps) across 5 categories: Directing, Cinematography, Acting, Soundtrack, and Screenplay - **Average score** — Automatic mean calculation across all 5 categories - **One rating per title** — Delete and re-rate if you change your mind ### Lists & Organization - **Top lists** — Separate pages for movies and TV shows, filterable by year and category with configurable limits - **Custom lists** — Create and manage personalized lists of movies and TV shows ### Social & Import - **Community** — Explore other users' ratings, lists, and activity - **Import from Letterboxd** — Bulk import your ratings and watchlist from a Letterboxd export ### Multi-user & Languages - **Multi-user** — Each user has their own ratings, follows, and tops - **Roles** — `USER`, `ADMIN` and `SUPERADMIN`. Superadmins can manage every account from the `/admin/dashboard`. A bootstrap superadmin is seeded on first run (see below). - **Multi language support** —          <p align="center"> <img alt="Search" src="assets/search.png" width="900"/> <br> <img alt="Detail" src="assets/detail.png" width="900"/> <br> <img alt="Rate" src="assets/rate.png" width="900"/> <br> <img alt="Top" src="assets/top.png" width="900"/> </p> --- ## Tech Stack | Layer | Technology | |---|---| | **Backend** | Kotlin 2.4.0 + Spring Boot 3.5.14 | | **Database** | PostgreSQL 17 (Flyway migrations) | | **Frontend** | Thymeleaf server-rendered HTML + CSS (dark theme, responsive) | | **Auth** | Spring Security (BCrypt, form login) | --- ## Installation Guide ### Prerequisites - Docker & Docker Compose - TMDB API key ([get one here](https://www.themoviedb.org/settings/api)) ### Quick Start #### Step 1: Clone the repository ```bash git clone https://github.com/golmenero/ratelog.git cd ratelog ``` #### Step 2: Copy the environment file ```bash cp .env.example .env ``` #### Step 3: Configure environment variables Edit `.env` and configure the variables: | Variable | Required | Default | Description | |---|---|---|---| | `PORT` | No | `8080` | HTTP port | | `POSTGRES_HOST` | No | `localhost` | PostgreSQL host | | `POSTGRES_PORT` | No | `5432` | PostgreSQL port | | `POSTGRES_DB` | No | `ratelog` | Database name | | `POSTGRES_USER` | No | `ratelog` | PostgreSQL user | | `POSTGRES_PASSWORD` | No | `ratelog` | PostgreSQL password | > **Warning:** For production deployments, consider setting `POSTGRES_PASSWORD` to a secure value #### Step 4: Start the application ```bash docker compose up -d ``` This will start the following services: - **postgres**: PostgreSQL 18 (port 5432, volume `pgdata`) - **ratelog**: App (port 8080, depends on healthy postgres) #### Step 5: Verify the deployment ```bash curl http://localhost:8080/api/health ``` #### Step 6: Log in as the bootstrap admin On first run, the Flyway migration `V20__add_role_and_seed_admin.sql` seeds a superadmin account: | Field | Value | |----------|-------------------| | Username | `admin` | | Password | `admin` | | Email | `admin@admin.com` | | Role | `SUPERADMIN` | > **Important:** Change the password from the admin dashboard immediately after first login. If an `admin` user already exists (e.g. created via the registration form), the migration only forces its role to `SUPERADMIN` and leaves its existing email and password untouched. #### Step 7: Configure the TMDB API key The TMDB API key is stored in `general_config` and editable from **Configuración > General** (`/admin/configuration`). Log in as the superadmin, paste the key and save. Search, trending and detail endpoints require a configured key. --- ## Mobile App Ratelog is a Progressive Web App (PWA) that can be installed on your mobile device for a native app-like experience. ### Installation On the login page, click the **iOS** or **Android** icon to see installation instructions, or follow the steps below: #### iOS (Safari) 1. Open the app URL in **Safari** 2. Tap the **Share** button (square with arrow) 3. Scroll down and tap **"Add to Home Screen"** 4. Tap **"Add"** to confirm #### Android (Chrome) 1. Open the app URL in **Chrome** 2. Tap the **menu button** (⋮) in the top right corner 3. Tap **"Install app"** or **"Add to Home screen"** 4. Tap **"Install"** to confirm > **Note:** The app must be accessible from your device (same network or via tunnel/VPN) --- <p align="center"> This project is powered by: <br/> <br/> <a href="https://www.themoviedb.org/documentation/api"> <img alt="TMDB API" src="assets/tmdb.svg" height="20px"/> </a> <a href="https://spring.io/projects/spring-boot"> <img alt="Spring Boot" src="assets/spring.svg" height="20px"/> </a>   <a href="https://www.postgresql.org/"> <img alt="PostgreSQL" src="assets/postgres.svg" height="20px"/> </a> </p>