MovieLandia24 is a dynamic, full-stack social platform built for cinema lovers. Explore a vast universe of movies, series, actors, and crew. Rate, review, bookmark, and connect with a community passionate about film. Enjoy a seamless and engaging platform designed to elevate your cinematic journey.
MovieLandia24 is built upon a robust and modern technology stack, prioritizing performance, scalability, and developer experience. At its core, Next.js 15 App Router and React 19 deliver a dynamic and engaging user interface with seamless navigation. Material UI, enhanced by Emotion, provides a consistent and visually appealing design system. Zustand ensures efficient state management, while Framer Motion enriches the UI with fluid animations. For transactional emails, React Email and Resend are integrated for a streamlined and reliable email delivery system.
Framework: Next.js 15 (App Router) - For server-side rendering, routing, and API capabilities.
UI Components: Material-UI v6 with Emotion - Providing a rich set of accessible and customizable React components with a focus on design consistency.
State Management: Zustand - For streamlined and centralized state management, particularly for UI-related concerns.
Database: PostgreSQL - A robust and scalable open-source relational database, managed with Prisma ORM for type-safe database access and migrations.
Authentication: NextAuth.js - Handles authentication with multi-provider support including Google OAuth and email/password credentials, ensuring secure user sessions.
Forms & Validation: React Hook Form and Zod - For efficient and performant form handling and robust schema validation.
Rich Text Editor: React Quill - Rich text input with image resizing via quill-resize-image.
Email System: React Email & Resend - Modern email templates and reliable transactional email delivery.
DataTables: Material React Table V3 - Dynamic, feature-rich admin-side data tables.
Animations: Framer Motion - Smooth and engaging UI animations.
PDF Generation: jsPDF & AutoTable - Server-side PDF data export.
Carousel: React Slick - Responsive and visually appealing content carousels.
Notifications: React Toastify - User-friendly toast notifications.
URL State: nuqs - Streamlined URL state management.
- Clone & Install:
git clone https://github.com/JurgenHasmeta22/movielandia.git cd movielandia npm install
- Environment Setup:
Create a
.env.local
with the following variables:DATABASE_URL="" NEXTAUTH_URL="" NEXTAUTH_SECRET="" GOOGLE_CLIENT_ID="" GOOGLE_CLIENT_SECRET="" RESEND_API_KEY="" POSTGRES_URL="" POSTGRES_PRISMA_URL="" POSTGRES_URL_NO_SSL="" POSTGRES_URL_NON_POOLING="" POSTGRES_HOST="" POSTGRES_PASSWORD="" POSTGRES_DATABASE=""
- Database Initialization:
npx prisma generate npx prisma migrate dev
- Development Server:
npm run dev
Visit http://localhost:4000
movielandia/
βββ src/
β βββ actions/ # Server actions for data mutations
β βββ app/ # Next.js app router pages & layouts
β β βββ (admin)/ # Admin dashboard routes
β β βββ (root)/ # Main app routes
β βββ components/ # Reusable UI components
β βββ constants/ # Global constants
β βββ hooks/ # Custom React hooks
β βββ layouts/ # Layout components
β βββ middleware.ts # Auth & routing middleware
β βββ providers/ # Context providers
β βββ store/ # Zustand store
β βββ types/ # TypeScript definitions
β βββ utils/ # Helper functions
βββ prisma/
β βββ migrations/ # Database migrations
β βββ schema/ # Database models
β |ββ seed/ # Seed data scripts
| |ββ config/ # Prisma config file
βββ emails/ # Email templates
Developed by JurgenHasmeta22