Descripción del proyecto:
Este es un proyecto para un Salón & Spa llamado La Duquesa donde tendremos lo siguiente:
- Todas las transacciones que se han realizado en el centro.
- Todos los servicios que se ofrecen en el centro.
- Todas los categorías de los servicios que se ofrecen en el centro.
- Todos los usuarios que se han registrado en el centro.
- Todos los roles que se han registrado en el centro.
Requisitos:
Para poder ejecutar el proyecto se necesita tener instalado:
- virtualenv
- python 3.8
- fastapi
- uvicorn
- serverless
- nodejs
- npm
- serverless-python-requirements
Instalación:
Para poder instalar el proyecto se debe seguir los siguientes pasos:
- Clonar el proyecto.
- Crear un entorno virtual.
- Activar el entorno virtual.
- Instalar las dependencias.
Clonar el proyecto:
git clone https://github.com/marcoantoniocruzado1994/api-duquesa-fastapi.git
Crear un entorno virtual:
virtualenv venv
Activar el entorno virtual:
source venv/bin/activate
Instalar las dependencias:
pip install -r requirements.txt
Ejecutar npm install
npm install
La instalación con FastAPI
Para poder ejecutar el proyecto en local se debe seguir los siguientes pasos:
- Activar el entorno virtual.
- Ejecutar el proyecto.
Activar el entorno virtual:
source venv/bin/activate
Ejecutar el proyecto:
uvicorn main:app --reload
Con Docker
Para poder ejecutar el proyecto en local se debe seguir los siguientes pasos:
Ejecutar el contenedor:
docker build -t imagen-duqueza:0.1.2 .
Luego de ejecutar el comando anterior se debe ejecutar el siguiente comando:
docker run --name duqueza-container -p 8000:8000 imagen-duqueza:0.1.2
Para poder desplegar el proyecto se debe tener en cuenta lo siguiente:
- Se debe tener una cuenta en AWS.
- Se debe tener instalado serverless.
luego de estos dos puntos tienes que configurar tu cuenta de AWS en serverless, para esto debes ejecutar el siguiente comando:
serverless config credentials --provider aws --key <key> --secret <secret>
Y si vas a usar Cloud9 para desplegar el proyecto debes ejecutar el siguiente comando:
serverless config credentials --provider aws --key <key> --secret <secret> --profile cloud9
Para que así al hacer el deploy se encuentre con tu cuenta de AWS.
Despliegue:
Para poder desplegar el proyecto se debe seguir los siguientes pasos:
- Instalar serverless
- Instalar serverless-python-requirements
Instalar serverless:
npm install -g serverless
Instalar serverless-python-requirements:
npm install --save-dev serverless-python-requirements
Para poder desplegar el proyecto se debe ejecutar el siguiente comando:
serverless deploy --stage dev
El proyecto cuenta con los siguientes endpoints:
-
GET /transaction/detail
-
GET /transaction/detail/{transaction_id}
-
GET /transaction/specific_detail/{transaction_id}
-
POST /transaction/new
-
PUT /transaction/update/{transaction_id}
-
DELETE /transaction/delete/{transaction_id}
-
GET /role/detail
-
GET /role/detail/{role_id}
-
POST /role/new
-
PUT /role/update/{role_id}
-
DELETE /role/delete/{role_id}
-
GET /service/detail
-
GET /service//detail/{service_id}
-
GET /service/detail_by_category/{category_id}
-
POST /service/new
-
PUT /service/update/{service_id}
-
DELETE /service/delete/{service_id}
-
GET /additional/detail
-
GET /additional/detail/{additional_id}
-
GET /additional/detail_by_service/{service_id}
-
POST /additional/new
-
PUT /additional/update/{additional_id}
-
DELETE /additional/delete/{additional_id}
-
GET /category/detail
-
GET /category/detail/{category_id}
-
POST /category/new
-
PUT /category/update/{category_id}
-
DELETE /category/delete/{category_id}
-
GET /user/detail
-
GET /user/detail/{user_id}
-
POST /user/new
-
POST /user/login