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 forauth,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 fromapp/ - 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