Aplicació de gestió de tasques (TodoMVC) construïda amb React i TypeScript, connectada a un backend serverless d'AWS (Lambda + API Gateway + DynamoDB).
| Tecnologia | Rol |
|---|---|
| React 18 | Llibreria d'interfície |
| TypeScript | Tipat estàtic |
| Vite | Bundler i servidor de desenvolupament |
| AWS Lambda + API Gateway | Backend serverless |
| DynamoDB | Base de dades al núvol |
todo-app/
├── .env # Variables d'entorn locals
├── .env.example # Plantilla de variables d'entorn
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
└── src/
├── App.tsx # Component arrel, renderitza Header, Todos i Footer
├── consts.ts # Valors constants (filtres: ALL, ACTIVE, COMPLETED)
├── types.d.ts # Tipus TypeScript (Todo, FilterValue, TodoList)
├── vite-env.d.ts # Tipat de les variables d'entorn de Vite
├── components/
│ ├── Header.tsx # Camp d'entrada per crear tasques
│ ├── Todos.tsx # Llista de tasques
│ ├── Todo.tsx # Component d'una tasca individual
│ └── Filters.tsx # Botons de filtre (All / Active / Completed)
├── hooks/
│ └── useTodos.ts # Lògica principal: estat + crides a l'API
├── services/
│ └── todos.ts # Funcions fetch cap a l'API d'AWS
└── mocks/
└── todos.ts # Dades de mostra (no s'usen en producció)
Abans d'arrancar l'aplicació cal crear el fitxer .env a l'arrel del projecte:
cp .env.example .envEdita .env amb els valors reals:
VITE_API_URL=https://2sjltqm4mk.execute-api.us-east-1.amazonaws.com/dev
VITE_USER_ID=user-1| Variable | Descripció |
|---|---|
VITE_API_URL |
URL base de l'API Gateway desplegada amb Terraform |
VITE_USER_ID |
Identificador d'usuari fix (no hi ha autenticació) |
El fitxer
.envestà al.gitignorei no es puja al repositori.
# Instal·lar dependències (només la primera vegada)
npm install
# Arrancar el servidor
npm run devL'aplicació estarà disponible a: http://localhost:5173
Per aturar el servidor: Ctrl + C
# Compilar per a producció
npm run build
# Previsualitzar la build de producció
npm run preview
# Verificar errors de TypeScript
npx tsc --noEmit- Fes clic al camp d'entrada de la part superior (amb el placeholder "¿Qué quieres hacer?")
- Escriu el títol de la tasca
- Prem Enter
La tasca es guarda automàticament a DynamoDB via l'API.
Fes clic al cercle que hi ha a l'esquerra del títol de la tasca. Es posarà de color verd i el text quedarà ratllat.
Per desmarcar-la, fes clic al cercle de nou.
Fes doble clic sobre el títol de la tasca. Apareixerà un camp d'edició.
- Prem Enter per guardar els canvis
- Prem Escape per cancel·lar l'edició
Passa el ratolí per sobre d'una tasca i fes clic a la X que apareix a la dreta.
A la part inferior hi ha tres botons de filtre:
| Filtre | Descripció |
|---|---|
| All | Mostra totes les tasques |
| Active | Mostra només les tasques pendents |
| Completed | Mostra només les tasques completades |
El filtre seleccionat es desa a la URL (?filter=active), de manera que pots compartir l'enllaç o refrescar la pàgina sense perdre'l.
Si hi ha tasques completades, apareix el botó "Clear completed" a la part inferior dreta. Fes clic per eliminar-les totes d'un cop (s'eliminen en paral·lel a DynamoDB).