Este proyecto tiene como objetivo cubrir la prueba técnica de full stack ssr/sr.
- Gestión de paquetes:
pnpm - Frontend:
Next JS,Tailwind CSS - Backend:
Prisma,Postgres
Para instalar el gestor de paquetes a utilizar en este proyecto:
https://pnpm.io/installation
Para instalar las dependencias del proyecto, ejecuta:
$ pnpm install
Para correr la aplicación en modo desarrollo, utiliza:
$ pnpm dev
Para configurar Postgres, sigue las instrucciones en Neon Tech. La versión gratuita es suficiente para el despliegue del proyecto.
Una vez finalizado el proyecto, debe ser desplegado, por facilidad recomendamos utilizar los servicios de Vercel.
Deberás modificar el archivo schema.prisma para agregar tu propia definición de modelo basada en la problemática dada en este ejercicio.
Puedes agregar cualquier librería extra para gestionar la funcionalidad de la aplicación, por ejemplo, react-query para gestionar solicitudes o trpc.
-
La app inicia con una pantalla de inicio de sesión (cualquier método de autenticación es válido: usuario y contraseña, Gmail, Discord, etc.). Puedes usar librerías como next-auth, clerk o lucia para facilitar esto.
-
Una vez inicies sesión, en base a los diseños crearás un calendario capaz de agendar recordatorios en el periodo de tiempo establecido. La precisión debe ser de días y horas. Por ejemplo, puedes asignar una cita para el día 1 de agosto a las 12:00. No es necesario que la precisión incluya minutos (aunque será considerado como un plus).
-
Los recordatorios que crees se guardarán en una base de datos (recomendamos usar Neon por su plan gratuito), y se enviará un correo con el texto que has puesto en el recordatorio cuando este llegue a su fecha y hora establecida.
-
Punto adicional: Esta parte no es obligatoria, sin embargo, es un plus. Si estás usando la aplicación al mismo tiempo que se está cumpliendo el tiempo de envío del recordatorio, una notificación aparecerá (toast o modal) con el texto Enviando recordatorio ahora. Esto permitirá evaluar cómo resuelves el problema de tiempo real.
-
Debido a la naturaleza del despliegue en serverless (Vercel), podrías encontrar algunas limitaciones al momento de definir cronjobs o websockets. Podrías utilizar servicios como
https://upstash.com/(cron jobs) ohttps://pusher.com/(websockets) para solucionar este problema. -
En caso de que optaras por un despliegue en servidor, recomendamos convertir este proyecto en un monorepo y desplegar el servidor en servicios como Railway, o digital ocean.
El diseño se basa en los esquemas proporcionados en Figma. Puedes encontrar los diseños en este enlace: Prueba - CondorSoft. Nota Importante: Este diseño es informativo para seguir los diseños y colores principales. No tiene que ser exacto al 100%, pero la idea debe ser similar.