Este proyecto es una aplicación Ionic React que utiliza Redux para manejar el estado global, y consume una API backend desarrollada en .NET 9 para manejar un inventario de productos, usuarios, favoritos y compras.
- Login con autenticación JWT
- Manejo global del token con Redux
- Listado de productos
- Favoritos por usuario
- Página de favoritos
- Protección de rutas
- Estilos móviles gracias a Ionic
- Conexión con backend en .NET
npm install -g @ionic/cli- Clona el repositorio
git clone https://github.com/tuusuario/inventory-app.git
cd inventory-app- Instala dependencias
npm install- Configura la URL del backend
Edita el archivo src/api/axios.ts y ajusta la base URL:
const API = axios.create({
baseURL: "http://localhost:5128/api",
});- Ejecuta el proyecto
ionic serve- El usuario se loguea con su nombre de usuario y contraseña.
- Al iniciar sesión, se guarda el token JWT en el estado global (Redux).
- El token se envía automáticamente en todas las peticiones.
- Se listan todos los productos disponibles.
- Se pueden marcar como favoritos.
- Página que lista los productos favoritos del usuario actual.
- Se puede quitar un producto de la lista.
src/
├── api/ # Peticiones Axios al backend
│ ├── authAPI.ts
│ ├── productAPI.ts
│ └── favoriteAPI.ts
├── components/ # Componentes reutilizables
├── pages/ # Pantallas (Login, Productos, Favoritos)
├── redux/ # Redux slices y store
│ ├── authSlice.ts
│ ├── productSlice.ts
│ ├── favoriteSlice.ts
│ └── store.ts
├── App.tsx # Rutas y navegación
└── main.tsx- Todos los endpoints de la API requieren un token JWT en el header.
- Se maneja con Axios interceptors desde
axios.ts:
API.interceptors.request.use((config) => {
const token = store.getState().auth.token;
if (token) config.headers.Authorization = `Bearer ${token}`;
return config;
});Puedes usar ionic serve y Swagger en el backend para probar:
- Login:
/api/auth/login - Productos:
/api/products - Favoritos:
/api/favorites - Compras:
/api/purchases
- Manejo de errores más detallado
- Registro de usuario desde frontend
- Página de historial de compras
Desarrollado por Eduardo Thomas