Skip to content

Latest commit

 

History

History
146 lines (115 loc) · 3.69 KB

File metadata and controls

146 lines (115 loc) · 3.69 KB

🔐 Secrets App

App full-stack para guardar secretos de forma segura, con autenticación, CRUD completo, filtros y paginación.

Next.js TypeScript Prisma Tailwind CSS

✨ Features

  • 🔐 Autenticación con email/contraseña y Google OAuth
  • 📝 CRUD completo de secretos
  • 🏷️ Tipos de secreto: Normal, Medio, Hard 🔥
  • ⭐ Marcar secretos como favoritos
  • 🔍 Búsqueda en tiempo real
  • 🎛️ Filtros por tipo y favoritos
  • 📅 Ordenar por fecha
  • 📄 Paginación
  • 📱 Mobile first
  • 🍞 Notificaciones con Toastify

🛠️ Tech Stack

Tecnología Uso
Next.js 15 Framework full-stack
Better Auth Autenticación
Prisma 6 ORM
Neon PostgreSQL serverless
Zustand Estado global
Zod Validaciones
React Hook Form Formularios
Tailwind CSS Estilos
React Toastify Notificaciones

🚀 Instalación local

1. Clona el repositorio

git clone https://github.com/tu-usuario/secrets-app.git
cd secrets-app

2. Instala las dependencias

npm install

3. Configura las variables de entorno

Crea un archivo .env en la raíz del proyecto:

# Database (Neon PostgreSQL)
DATABASE_URL="postgresql://user:password@ep-xxx.neon.tech/neondb?sslmode=require"

# Better Auth
BETTER_AUTH_SECRET="tu-secret-aqui"
BETTER_AUTH_URL="http://localhost:3000"
NEXT_PUBLIC_BETTER_AUTH_URL="http://localhost:3000"

# Google OAuth
GOOGLE_CLIENT_ID="tu-client-id"
GOOGLE_CLIENT_SECRET="tu-client-secret"

4. Genera el cliente de Prisma y crea las tablas

npx prisma generate
npx prisma db push

5. Corre el proyecto

npm run dev

Abre http://localhost:3000 en tu navegador.

🗄️ Estructura del proyecto

src/
├── app/
│   ├── (auth)/
│   │   ├── login/
│   │   └── register/
│   ├── (dashboard)/
│   │   ├── dashboard/
│   │   └── secrets/
│   └── api/
│       ├── auth/
│       └── secrets/
├── components/
│   └── secrets/
│       ├── SecretCard.tsx
│       ├── SecretFilters.tsx
│       └── SecretForm.tsx
├── hooks/
│   └── useSecrets.ts
├── lib/
│   ├── auth.ts
│   ├── auth-client.ts
│   ├── prisma.ts
│   └── validations/
│       ├── auth.ts
│       └── secret.ts
├── store/
│   ├── useAuthStore.ts
│   └── useSecretsStore.ts
└── types/
    └── index.ts

🌐 Deploy en Vercel

  1. Importa el repositorio en Vercel
  2. Agrega las variables de entorno con tu URL de producción
  3. Agrega la URL de producción en Google Cloud Console como redirect URI autorizado:
https://tu-app.vercel.app/api/auth/callback/google

📝 Variables de entorno en producción

DATABASE_URL=tu-neon-url
BETTER_AUTH_SECRET=tu-secret
BETTER_AUTH_URL=https://tu-app.vercel.app
NEXT_PUBLIC_BETTER_AUTH_URL=https://tu-app.vercel.app
GOOGLE_CLIENT_ID=tu-client-id
GOOGLE_CLIENT_SECRET=tu-client-secret

📸 Screenshots

Próximamente...

📄 Licencia

MIT