A full-stack movie discovery platform where users can search for TV shows, read details, and create or update custom reviews.
- Custom Authentication: Secure login and registration using NextAuth.js, supporting both credentials and Google OAuth.
- CRUD Operations: Users can easily create, read, update, and delete their personalized movie reviews.
- Responsive UI: A fully responsive, modern interface built with Tailwind CSS and shadcn/ui, optimized for all devices.
- Type Safety: Entire codebase is strictly typed with TypeScript, minimizing runtime errors and improving maintainability.
- Framework: Next.js (App Router)
- Language: TypeScript
- Styling: Tailwind CSS, shadcn
- Backend & Database: Next.js API Routes, MongoDB, Mongoose
- Authentication: Implemented a hybrid approach using NextAuth.js. Features include custom credential-based login (Email/Password) and third-party provider integration (Google OAuth), with fully managed custom session handling.
To run this project on your local machine, follow these steps:
git clone <link-of-this-repository>cd <repository-folder-name>
npm install
Create a .env.local file in the root directory of the project.
Copy the structure below and replace the placeholder values with your own API keys and credentials. The constant variables (like NEXTAUTH_URL and SECURE_COOKIES) are already set for local development.
# Database
MONGODB_URI="your_mongodb_connection_string"
# NextAuth and Security
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your_generated_nextauth_secret"
SESSION_SECRET="your_generated_session_secret"
SECURE_COOKIES="true" # Set to "false" if you have issues on local HTTP
# Google OAuth Provider
GOOGLE_CLIENT_ID="your_google_client_id"
GOOGLE_CLIENT_SECRET="your_google_client_secret"
# TMDB API (The Movie Database)
TMDB_API_KEY="your_tmdb_api_key"
TMDB_READ_ACCESS_KEY="your_tmdb_read_access_key"npm run dev