MiClonThreads es una plataforma de redes sociales diseñada para facilitar la comunicación y la interacción entre usuarios a través de publicaciones breves y mensajes. Inspirada en la funcionalidad de Threads, esta aplicación permite a los usuarios compartir pensamientos, noticias, y actualizaciones en tiempo real, seguir a otros usuarios, y participar en conversaciones.
Registro y Autenticación:
Perfil de Usuario:
Publicaciones:
Feed de Publicaciones:
Seguimiento de Usuarios:
Interacciones:
Notificaciones:
Configuración de Privacidad:
Interfaz de Usuario:
bun add -D eslint-config-prettier
add --dev @trivago/prettier-plugin-sort-imports
{
"semi": true,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "es5",
"importOrder": ["^@/(.*)$", "^[./]"],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"plugins": ["@trivago/prettier-plugin-sort-imports"]
}
bun install -D prettier prettier-plugin-tailwindcss
{
"plugins": ["prettier-plugin-tailwindcss"]
}
.eslintrc.json
o .prettierrc.json
tailwind.config.ts
tsconfig.json
next.config.ts
app/globals.css
@layer base {
:root {
--background: 0 0% 100%;
}
}
@layer
en el archivo app/globals.css
para crear estilos globales.NameClass {
@apply bg-red-500;
}
Se acepta el uso de @apply
en el archivo app/globals.css
para crear estilos globales
Se usará Kebab Case para nombrar los archivos nombre-de-la-clase.tsx
Se Trabajará por Features y Bug Fixes
/mi-clon-threads
├── /public
│ └── (imágenes, fuentes, etc.)
├── /src
│ ├── /components # Componentes de UI
│ │ ├── /common # Componentes reutilizables
│ │ └── /features # Componentes específicos por características
│ │ ├── /posts
│ │ │ ├── post-list.tsx
│ │ │ ├── post-item.tsx
│ │ │ └── post-form.tsx
│ │ ├── /users
│ │ │ ├── user-profile.tsx
│ │ │ └── user-list.tsx
│ │ └── /auth
│ │ ├── login-form.tsx
│ │ └── signup-form.tsx
│ ├── /hooks # Hooks personalizados
│ │ ├── use-posts.ts
│ │ ├── use-users.ts
│ │ └── use-auth.ts
│ ├── /lib # Funciones utilitarias y configuraciones
│ │ ├── api.ts # Interacciones con la API
│ │ └── constants.ts # Constantes de la aplicación
│ ├── /actions # Acciones para manejar lógica de negocio
│ │ ├── post-actions.ts
│ │ ├── user-actions.ts
│ │ └── auth-actions.ts
│ ├── /interfaces # Interfaces de TypeScript
│ │ ├── post.ts
│ │ ├── user.ts
│ │ └── auth.ts
│ ├── /app # Páginas de Next.js
│ │ ├── /api # Rutas API
│ │ ├── index.tsx
│ │ ├── login.tsx
│ │ ├── signup.tsx
│ │ └── /posts
│ │ ├── [id].tsx # Detalle de publicación
│ │ └── index.tsx # Listado de publicaciones
│ ├── /styles # Estilos globales y específicos (Tailwind CSS)
│ │ └── globals.css # Estilos globales de Tailwind
│ ├── /context # Contextos de React
│ ├── /utils # Funciones utilitarias adicionales
│ └── /types # Tipos adicionales si los necesitas
└── package.json
Agregar variables de entorno al archivo .example.env
despues clonarlo en el .env
NEXT_PUBLIC_
para variables globales del frontend NEXT_PUBLIC_VALUE=""
PRIVATE_
para variables privadas del backend PRIVATE_VALUE=""
DB_
para variables de base de datos DB_VALUE=""