An open API service indexing awesome lists of open source software.

https://github.com/mraliencito/tareas-es

App de tareas en Node + Express + Prisma (SQLite). UI simple. Código/documentación en español.
https://github.com/mraliencito/tareas-es

crud espanol express github-actions javascript node prisma rest-api sqlite

Last synced: 3 months ago
JSON representation

App de tareas en Node + Express + Prisma (SQLite). UI simple. Código/documentación en español.

Awesome Lists containing this project

README

          

# Tareas (simple y en español)


Tareas ES

Tareas ES — lista de tareas en Node + Prisma (SQLite), 100% en español.



Node >=18
MIT
Prisma ORM
CI GitHub Actions

![Preview](assets/preview.svg)

Proyecto **sencillo y entendible** para practicar GitHub y tener algo prolijo en tu perfil.
Todo en **español**: API con **Node + Express** y base de datos **SQLite** usando **Prisma**.
Incluye una **pantalla web** mínima para crear, listar, marcar y borrar tareas.

> No necesitas Docker ni Postgres. Sólo Node.js 18+ (recomendado 20).

## 🚀 Arranque rápido (Windows PowerShell)

1) Clonar o descomprimir el proyecto y entrar a la carpeta del repo.

2) Crear archivo `.env` a partir del ejemplo:
```powershell
Copy-Item .env.example .env
```

3) Instalar dependencias (esto crea `node_modules/`):
```powershell
npm install
```

4) Generar Prisma Client y crear la base de datos con la primera migración:
```powershell
npx prisma generate
npx prisma migrate dev --name init
```

5) Levantar el servidor (http://localhost:3000):
```powershell
npm run dev
```

> Si querés encadenar en una sola línea en PowerShell, usá `;` y **no** `&&`:
> `npm install; npx prisma generate; npx prisma migrate dev --name init; npm run dev`

## 📚 API (endpoints)

- `GET /salud` → chequear que el servidor responde.
- `GET /tareas` → lista todas las tareas.
- `POST /tareas` → crea una tarea. Body JSON: `{ "titulo": "texto" }`
- `PUT /tareas/:id` → actualiza (título y/o hecho). Body JSON: `{ "titulo": "...", "hecho": true }`
- `DELETE /tareas/:id` → elimina una tarea.

## 🖥️ Interfaz web mínima

Abrí `http://localhost:3000/` y usá el formulario para crear/gestionar tareas.
La UI usa `fetch` y habla con los endpoints de arriba.

## 🧩 Estructura
```
tareas-es/
├─ app.js # Servidor Express (todo en español)
├─ public/
│ ├─ index.html # UI simple para gestionar tareas
│ └─ style.css # Estilos básicos
├─ prisma/
│ ├─ schema.prisma # Modelo de datos (SQLite)
│ └─ seed.js # (opcional) semilla con datos de ejemplo
├─ package.json
├─ .env.example
├─ README.md
└─ ... (archivos de config)
```

## 🧪 Datos de ejemplo (opcional)
Podés cargar una semilla rápida:
```powershell
node prisma/seed.js
```

## 🔧 Scripts útiles
- `npm run dev` → levanta la app en modo desarrollo
- `npm run start` → levanta la app (igual que dev en este proyecto)
- `npm run prisma:studio` → abre Prisma Studio (GUI para la base)
- `npm run prisma:format` → formatea el schema de Prisma

## 📝 Notas
- Este proyecto usa **SQLite** (archivo local) → simple y portable.
- Si preferís Postgres después, cambiás `DATABASE_URL` y listo.
- El código y los comentarios están en español para que sea didáctico.

¡Listo! Tenés un repo claro, 100% en español, ideal para pinear en tu perfil.

## ✨ Características
- Código y comentarios **en español**.
- **SQLite** local (simple y portable) vía **Prisma ORM**.
- **Express** con endpoints REST y **UI** mínima sin frameworks.
- Scripts listos para **PowerShell** y **Bash**.
- **CI** con GitHub Actions que valida `/salud`.

## 🧑‍💻 Scripts npm
- `npm run dev` — levanta la app en desarrollo.
- `npm run start` — levanta la app (igual en este proyecto).
- `npm run prisma:studio` — abre Prisma Studio.
- `npm run prisma:format` — formatea el schema.
- `npm run seed` — carga datos de ejemplo (ver abajo).
- `npm run check` — chequeo rápido de salud del proyecto.

## 🌱 Semilla de datos
```powershell
npm run seed
```

## 🧰 CI con GitHub Actions
Este repo trae un workflow en `.github/workflows/ci.yml` que:
1. Instala dependencias.
2. Genera Prisma Client.
3. Aplica migraciones a SQLite.
4. Levanta el servidor y verifica `GET /salud` con `curl`.