# FoodCart
## Descripción
FoodCart es una aplicación web que permite a los usuarios pedir alimentos y bebidas en línea. La aplicación está construida utilizando Angular en el frontend y Node.js en el backend, con PostgreSQL como base de datos.
## Tabla de Contenidos
- [Instalación](#instalación)
- [Uso](#uso)
- [Scripts](#scripts)
- [Configuración de Entorno](#configuración-de-entorno)
- [Estructura del Proyecto](#estructura-del-proyecto)
- [Dependencias](#dependencias)
- [Contribución](#contribución)
- [Licencia](#licencia)
## Instalación
1. Clona el repositorio:
```bash
git clone https://github.com/tuusuario/foodcart.git
```
-
Navega al directorio del proyecto:
cd foodcart
-
Instala las dependencias del backend:
cd backend npm install
-
Instala las dependencias del frontend:
cd ../frontend npm install
-
Inicia la base de datos:
docker-compose up database
-
Inicia el backend:
cd backend npm run dev
-
Inicia el frontend:
cd frontend npm start
La aplicación estará disponible en http://localhost:4200
.
-
Construye y levanta los contenedores:
docker-compose up --build
-
La aplicación estará disponible en
http://localhost
.
ng
: Ejecuta Angular CLI.start
: Inicia el servidor de desarrollo de Angular.build
: Construye la aplicación para producción.watch
: Construye la aplicación en modo de observación para desarrollo.test
: Ejecuta las pruebas unitarias.
dev
: Inicia el servidor de desarrollo de Node.js.
Crea un archivo .env
en los directorios backend
y database
con las siguientes variables de entorno:
# Variables de entorno para backend
PGDATABASE=tu_basedatos
PGUSER=tu_usuario
PGPASSWORD=tu_contraseña
PGPORT=5432
PGHOST=tu_host
JWTSECRET=tu_secreto_jwt
GOOGLE_ID=tu_google_id
GOOGLE_SECRET=tu_google_secreto
FACEBOOK_ID=tu_facebook_id
FACEBOOK_SECRET=tu_facebook_secreto
user=tu_usuario_genérico
pass=tu_contraseña_genérica
# Variables de entorno para database
POSTGRES_DB=tu_basedatos
POSTGRES_USER=tu_usuario
POSTGRES_PASSWORD=tu_contraseña
foodcart/
├── backend/
│ ├── src/
│ ├── package.json
│ └── ...
├── frontend/
│ ├── src/
│ ├── package.json
│ └── ...
├── database/
│ ├── Dockerfile
│ └── ...
├── proxy/
│ ├── certs/
│ ├── myconf.template
│ └── ...
├── docker-compose.yml
└── README.md
@angular/core
: ^18.2.0@ionic/angular
: ^8.3.3ngx-image-cropper
: ^8.1.0ol
: ^10.2.1rxjs
: ~7.8.0tslib
: ^2.3.0zone.js
: ~0.14.10
- Lista de dependencias específicas del backend.
@angular-devkit/build-angular
: ^18.2.7@angular/cli
: ^18.2.7@ionic/angular-toolkit
: latesttypescript
: ~5.5.2- Otras dependencias necesarias para el desarrollo y pruebas.
- Haz un fork del proyecto.
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad
). - Realiza los cambios necesarios y haz commit (
git commit -am 'Agrega nueva funcionalidad'
). - Envía los cambios a la rama (
git push origin feature/nueva-funcionalidad
). - Abre un Pull Request.
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.