Aplicación web construida con Node.js, Express, EJS y MongoDB/Mongoose para gestionar usuarios y publicaciones de una red social simple.
- Conexión a MongoDB con
mongoose. - Modelos robustos para
UseryPost. - Patrón repositorio para separar acceso a datos.
- Vista principal con navegación clara.
- CRUD de posts desde la interfaz web.
- Soporte para imágenes por URL en cada post.
- Hashtags, enlaces y edición de publicaciones.
- Node.js
- Express
- EJS
- MongoDB
- Mongoose
- Nodemon
mongo-node/
├── app.js
├── package.json
├── .env
├── .env.example
└── src/
├── controllers/
├── db/
├── models/
├── public/
├── repositories/
├── routes/
├── services/
└── views/name: String, requiredlastName: String, requiredemail: String, unique, requiredage: Number, required, min 18phoneNumber: Stringpassword: String, required, minLength 8createdAt: Date, defaultDate.now
title: String, required, minLength 5, maxLength 30content: String, required, minLength 10hashtags: Array de StringimageUrl: StringcreatedAt: Date, defaultDate.nowupdatedAt: Dateuser: ObjectId con referencia aUser
/→ pantalla de bienvenida./posts→ listado, creación, edición y eliminación de posts./posts/edit/:id→ formulario de edición.
GET /→ home.GET /posts→ listar posts.GET /posts/new→ formulario visual de creación.POST /posts→ crear post.GET /posts/edit/:id→ editar post.POST /posts/edit/:id→ actualizar post.POST /posts/delete/:id→ eliminar post.
El archivo .env debe contener:
PORT=3001
MONGO_URI=mongodb://localhost:27017/socialmedia- Instala dependencias:
npm install- Ejecuta el proyecto en desarrollo:
npm run dev- Ejecuta el proyecto en producción local:
npm run start- Abre
http://localhost:3001. - Entra a
Postspara crear publicaciones. - Completa título, contenido, hashtags, URL de imagen y usuario.
- Usa editar o eliminar desde cada tarjeta.
El proyecto implementa una base sólida para una app social CRUD con una arquitectura clara: conexión a base de datos, modelos validados, patrón repositorio y vistas EJS separadas.


