Skip to content
J-DerekPublic

About

Your personalized movie matchmaker. Swipe to discover films tailored to your current vibe and instantly build your perfect watchlist.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Stars Forks Issues License

Pickd Logo

Pickd

Stop scrolling. Start watching.
A premium, mood-based movie discovery app that curates personalized recommendations tailored precisely to your current vibe.

Download APK »

Report Bug · Request Feature


Table of Contents
  1. About The Project
  2. Getting Started
  3. Features & Usage
  4. Architecture
  5. Roadmap
  6. Contributing
  7. License
  8. Acknowledgments

About The Project

Endless scrolling on streaming platforms is broken. Pickd fixes this by instantly curating movies and TV shows based entirely on your current mood and vibe. Using a fluid, Tinder-style swipe interface, you make split-second decisions without overthinking, saving them instantly to a cross-device synced watchlist.

(back to top)

App Preview

Onboarding Swipe Deck Movie Detail
Onboarding Swipe Deck Movie Detail
Mood Selection Search Watchlist
Mood Selection Search Watchlist

(back to top)

Built With

This project is built using modern frameworks and robust backend services.

  • Flutter
  • Dart
  • Supabase
  • TMDB API

(back to top)


Getting Started

For Users

Want to test it out right now without touching any code?

  1. Head over to the Releases Tab.
  2. Download the latest app-release.apk.
  3. Install it directly on your Android device and start swiping!

For Developers (Running Locally)

To get a local copy up and running, follow these simple steps.

Prerequisites

Make sure you have the following installed on your machine:

Installation

  1. Clone the repo
    git clone https://github.com/J-Derek/pickd.git
  2. Navigate into the directory
    cd pickd
  3. Install Flutter packages
    flutter pub get
  4. Configure Environment Variables Rename the .env.example file to .env and enter your API keys:
    TMDB_API_KEY=your_tmdb_api_key_here
    SUPABASE_URL=your_supabase_url_here
    SUPABASE_ANON_KEY=your_supabase_anon_key_here
  5. Run Code Generation (For Riverpod and Freezed models)
    dart run build_runner build --delete-conflicting-outputs
  6. Run the App
    flutter run

(back to top)


Features & Usage

Feature Description
Mood-Based Engine Select your current vibe (e.g., Chill, Hyped, Spooky) and let Pickd instantly generate the perfect deck of films.
Tinder-Style Swiping Fluid gesture controls. Swipe Right to save to Watchlist, Swipe Left to pass, Swipe Up to mark as watched.
Premium Cinematic UI A stunning, edge-to-edge dark mode interface designed using modern HCI principles.
Cross-Device Sync Powered by Supabase. Your watchlist, history, and profile sync instantly across all your devices.
Offline Caching Powered by Hive. Blazing fast local storage ensures your app loads instantly, even on terrible networks.

(back to top)


Architecture

Pickd is built with a feature-first, scalable domain architecture:

graph TB
    subgraph Frontend [Flutter App]
        UI[UI Layer]
        State[State Management - Riverpod]
        Local[Local Cache - Hive]
    end
    
    subgraph Backend [Backend Services]
        Supa[Supabase]
        TMDB[TMDB API]
    end
    
    UI --> State
    State --> Local
    State --> Supa
    State --> TMDB
Loading

(back to top)


Roadmap

  • Mood-based swiping engine
  • TV Series support with season/episode browser
  • Hidden Gems discovery deck
  • Cross-device sync via Supabase
  • Multiplayer swiping rooms (watch with friends)
  • Streaming provider deep links (Netflix, Prime, Disney+)
  • iOS release

See the open issues for a full list of proposed features (and known issues).

(back to top)


Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)


License

Distributed under the MIT License. See LICENSE for more information.

(back to top)


Acknowledgments

(back to top)

About

Your personalized movie matchmaker. Swipe to discover films tailored to your current vibe and instantly build your perfect watchlist.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages