Skip to content

luydevops/TestSmartTechnology_back

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claro, aquí tienes un borrador de README para tu proyecto FastAPI, basado en las dependencias que mencionaste y la estructura de archivos que se ve en la captura de pantalla:

# TestSmartTechnology Back-end

Este es el back-end de la aplicación TestSmartTechnology, construido con FastAPI.

## Descripción

El back-end proporciona las APIs necesarias para la gestión de usuarios, autenticación y otras funcionalidades clave de la aplicación TestSmartTechnology. Utiliza una arquitectura basada en microservicios, con rutas separadas para diferentes funcionalidades.

## Tecnologías Utilizadas

* **FastAPI**: Framework web moderno y rápido para construir APIs con Python.
* **Uvicorn**: Servidor ASGI rápido como un rayo, para ejecutar la aplicación FastAPI.
* **SQLAlchemy**: Toolkit de SQL y ORM para interactuar con la base de datos PostgreSQL.
* **psycopg2-binary**: Adaptador de PostgreSQL para Python.
* **Pydantic**: Validación de datos y gestión de configuración utilizando anotaciones de tipo Python.
* **python-dotenv**: Para cargar variables de entorno desde un archivo `.env`.
* **httpx**: Cliente HTTP de próxima generación para Python.
* **passlib[bcrypt]**: Librería para hashing de contraseñas de forma segura.
* **pydantic-settings**: Gestión de configuración basada en Pydantic.
* **pydantic[email]**: Validación de correos electrónicos con Pydantic.

## Requisitos

* Python 3.7+
* PostgreSQL

## Instalación

1.  Clona el repositorio:

    ```bash
    git clone <URL_del_repositorio>
    cd TestSmartTechnology-back
    ```

2.  Crea un entorno virtual (opcional pero recomendado):

    ```bash
    python3 -m venv venv
    source venv/bin/activate  # En Linux/macOS
    venv\Scripts\activate  # En Windows
    ```

3.  Instala las dependencias:

    ```bash
    pip install -r requirements.txt
    ```

4.  Crea un archivo `.env` en la raíz del proyecto y configura las variables de entorno necesarias (por ejemplo, la URL de la base de datos). Puedes usar `.env.example` como plantilla.

    ```
    DATABASE_URL=postgresql://usuario:contraseña@host:puerto/basededatos
    SECRET_KEY=tu_clave_secreta
    ```

5.  Ejecuta las migraciones de la base de datos (si es necesario):

    ```bash
    alembic upgrade head
    ```

6.  Ejecuta el servidor Uvicorn:

    ```bash
    uvicorn main:app --reload
    ```

    La API estará disponible en `http://127.0.0.1:8000`.

## Estructura del Proyecto


TestSmartTechnology-back/
├── src/
│   ├── routes/
│   │   ├── users.py
│   │   └── auth.py
│   ├── config.py
│   ├── database.py
│   ├── main.py
│   ├── migrations/
│   ├── models.py
│   └── schemas.py
├── .env
├── .gitignore
├── README.md
├── requirements.txt
└── test_main.http
  • src/routes: Contiene las definiciones de las rutas de la API.
  • src/config.py: Configuración de la aplicación.
  • src/database.py: Configuración y conexión a la base de datos.
  • src/main.py: Punto de entrada de la aplicación FastAPI.
  • src/migrations/: Migraciones de la base de datos con Alembic.
  • src/models.py: Definiciones de los modelos de la base de datos con SQLAlchemy.
  • src/schemas.py: Esquemas de Pydantic para la validación de datos.
  • .env: Archivo de variables de entorno.
  • requirements.txt: Lista de dependencias del proyecto.
  • test_main.http: Archivo de pruebas HTTP para la API.

Puntos Finales de la API

(Aquí puedes añadir una lista de los endpoints principales de la API, por ejemplo:)

  • POST /users/: Crea un nuevo usuario.
  • POST /auth/token: Obtiene un token de acceso.
  • GET /users/me: Obtiene la información del usuario autenticado.

Instalación

  1. Clona el repositorio:

    git clone <URL_del_repositorio>
    cd TestSmartTechnology-back
  2. Crea un entorno virtual (opcional pero recomendado):

    python3 -m venv venv
    source venv/bin/activate  # En Linux/macOS
    venv\Scripts\activate  # En Windows
  3. Instala las dependencias:

    pip install -r requirements.txt
  4. Crea un archivo .env en la raíz del proyecto y configura las variables de entorno necesarias (por ejemplo, la URL de la base de datos). Puedes usar .env.example como plantilla.

    DATABASE_URL=postgresql://usuario:contraseña@host:puerto/basededatos
    SECRET_KEY=tu_clave_secreta
    
  5. Ejecuta las migraciones de la base de datos (si es necesario):

    alembic upgrade head
  6. Ejecuta el servidor Uvicorn:

    uvicorn src.main:app --host 0.0.0.0 --port 3000 --reload

    La API estará disponible en http://0.0.0.0:3000.

Explicación del comando uvicorn

  • src.main:app: Indica el módulo main.py dentro de la carpeta src y el objeto app (la instancia de FastAPI) que se debe cargar.
  • --host 0.0.0.0: Hace que el servidor escuche en todas las interfaces de red disponibles, permitiendo el acceso desde cualquier dirección IP.
  • --port 3000: Especifica el puerto en el que el servidor escuchará (en este caso, el puerto 3000).
  • --reload: Habilita la recarga automática del servidor cuando se detectan cambios en el código, útil durante el desarrollo.

Con este comando, tu servidor FastAPI estará accesible a través de la red, lo que es especialmente útil si quieres acceder desde otros dispositivos o si la aplicación se va a desplegar en un entorno de producción.

Contribución

Si deseas contribuir a este proyecto, por favor sigue estos pasos:

  1. Haz un fork del repositorio.
  2. Crea una rama para tu contribución (git checkout -b feature/nueva-funcionalidad).
  3. Haz los cambios y commitea (git commit -am 'Añade nueva funcionalidad').
  4. Sube los cambios a tu fork (git push origin feature/nueva-funcionalidad).
  5. Crea un pull request.

Licencia

Este proyecto está bajo la licencia MIT.


Recuerda reemplazar los marcadores de posición (como `<URL_del_repositorio>`, `usuario`, `contraseña`, `host`, `puerto`, `basededatos`, `tu_clave_secreta`) con los valores reales. También puedes añadir más detalles sobre la funcionalidad de la API y cómo usarla.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages