Viddeo es un proyecto desarrollado como parte de una prueba técnica con el objetivo de construir una aplicación funcional de reproducción de videos. Aunque su enfoque principal es cumplir con los requisitos indicados, se han agregado funcionalidades adicionales para mejorar habilidades y explorar nuevas tecnologías. La mayor parte de la lógica se encuentra en el reproductor de video.
- Listado de videos con opciones para visualizarlos en detalle.
- Página de detalles del video:
- Reproductor de video.
- Información del creador del video.
- Contador de reproducciones.
- Botón de "like" (disponible solo para usuarios registrados y logueados).
- Descripción del video.
- Next.js 15: Framework para aplicaciones React.
- TailwindCSS: Estilizado con clases de utilidad.
- Shadcn: Componentes para interfaces de usuario consistentes.
- tRPC: API type-safe para comunicación entre frontend y backend.
- TypeScript: Tipado estático.
- MongoDB: Base de datos.
- Prisma: ORM para interactuar con la base de datos.
- Auth.js: Manejo de autenticación.
- Node.js (v18 o superior).
- Cuenta en MongoDB.
-
Clona el repositorio y navega a la carpeta del proyecto:
git clone https://github.com/CarlosPProjects/viddeo-pt.git cd viddeo
-
Instala las dependencias:
npm install --force
-
Configura las variables de entorno en un archivo
.env
:- Genera un secreto para Auth.js:
npx auth secret
- Agrega la URL de tu base de datos de MongoDB.
- Genera un secreto para Auth.js:
-
Configura Prisma:
npx prisma generate npx prisma db push
-
Inicia el servidor de desarrollo:
npm run dev
-
Configura los comandos de build:
- Build Command:
prisma generate && next build
- Install Command:
npm i --force
- Build Command:
-
Asegúrate de configurar las variables de entorno en el panel de configuración de Vercel.
Se han implementado los siguientes procedimientos de tRPC:
- Auth:
- Registro y login.
- Like:
- Obtener y crear likes (en base al ID del usuario y el ID del video).
- User:
- Crear usuario, validar contraseña, obtener usuario por ID o email.
- Video:
- Subir videos, listar videos, obtener detalles de un video, incrementar vistas.