Getting Started

Project Structure

Understand the current directory structure of Movie Recommender

Project Layout

The Movie Recommender project has two main directories:

movie-recommender/
├── app/                         # Nuxt 4 full-stack app (where most work happens)
├── docs/                        # Documentation site
├── README.md
└── LICENSE

App Directory

The main app is a Nuxt 4 application with Vue and Tailwind CSS. All active development happens here.

app/
├── app/
│   ├── app.vue
│   ├── pages/
│   ├── components/
│   ├── composables/
│   ├── layouts/
│   ├── plugins/
│   ├── types/
│   └── utils/
├── server/
│   ├── api/
│   │   ├── admin/
│   │   ├── movies/
│   │   ├── mylist/
│   │   ├── recommend/
│   │   ├── watched/
│   │   └── recommend.get.ts
│   └── utils/
├── test/
├── public/
├── nuxt.config.ts
├── tsconfig.json
└── package.json

Key Areas

  • Pages (app/pages/) - Home, search, watched, profile, mylist, and reset-password
  • Components (app/components/) - Reusable UI components
  • Composables (app/composables/) - Shared logic for auth, watched state, My List, movie details, recommendation quota, and filters
  • Server API (server/api/) - Backend endpoints for recommendations, recommendation quota, movie search/details/popular, watched movies, My List, signup, and admin import
  • Server Utilities (server/utils/) - Domain folders for auth, recommendations, tmdb, and shared infrastructure
  • Tests (test/) - Nuxt route tests plus unit coverage for recommendation, search, and import utilities

Documentation Directory

The docs site (what you are reading now):

docs/
├── content/            # Markdown pages
├── public/             # Static assets
├── nuxt.config.ts
└── package.json

What to Know

  • All app commands (npm run dev, npm run build, npm run test, npm run typecheck, npm run lint) are run from app/
  • The app server runs on http://localhost:3000
  • The docs site is separate and has its own package.json
  • Server-side movie data, watched state, My List, and recommendation cache live in Supabase
  • Recommendation generation is provider-agnostic now; the route uses the AI client in server/utils/recommendations/ai-client.ts
Copyright © 2026