Skip to content

Este repositorio contiene el código fuente de la API para un sistema de gestión inmobiliario, diseñado para facilitar la administración y seguimiento de propiedades, clientes y transacciones inmobiliarias.

License

Notifications You must be signed in to change notification settings

The-Asintota/backend-inmobiliaria

 
 

Repository files navigation

API inmobiliaria Bonpland

Note

Este proyecto aun está en desarrollo.

En este repositorio encontrarás el código fuente de la API para la plataforma de gestión de inmobiliaria Bonpland, puedes consultar la documentación completa aquí o visitar el sitio web aquí.

1. Descripción del proyecto

La plataforma web se integra como una extensión de las operaciones tradicionales de la Inmobiliaria Bonpland. Esta plataforma en línea permitirá a la inmobiliaria ampliar su alcance y ofrecer servicios de manera digital, sin reemplazar por completo las interacciones presenciales en sus oficinas físicas. La perspectiva del producto se centra en proporcionar una experiencia en línea atractiva y eficiente para los usuarios finales, incluyendo paneles de búsqueda por filtros, al tiempo que facilita la administración y el flujo de trabajo para los empleados de la inmobiliaria. La plataforma permitirá a las constructoras y agentes inmobiliarios gestionar proyectos o inmuebles, mejorar la comunicación y coordinación entre todas las partes, y optimizar los procesos operativos para aumentar la eficiencia y reducir errores.

1.1. Características de los usuarios

El sistema de gestión de inmuebles está diseñado para atender a tres tipos principales de usuarios, cada uno con diferentes razones o motivaciones por las cuales utilizarían el sistema y lo que esperan lograr con su uso.

  • Buscadores: Estos son los usuarios que buscan invertir en proyectos inmobiliarios de constructoras o adquirir inmuebles. Pueden ser personas individuales, parejas, familias, inversores o empresas.
  • Entidades inmobiliarias: Estos usuarios representan a constructoras e inmobiliarias, dedicados a ofrecer productos inmobiliarios a través de la plataforma. Las inmobiliarias pueden gestionar tanto casas como departamentos, disponibles para la venta o alquiler. Por su parte, las constructoras se encargan de gestionar proyectos inmobiliarios en diversas etapas: desde la fase de planificación hasta la construcción y entrega, que pueden estar en planos, en proceso de construcción o listos para entrega inmediata.
  • Administradores: Estos son los empleados de la inmobiliaria responsable de administrar y mantener la plataforma. Su función es garantizar que el sistema funcione sin problemas y que tanto los usuarios buscadores como las constructoras puedan utilizar la plataforma de manera efectiva.

1.2. Requerimientos funcionales

  • Registro de usuarios.
  • Sistema de autenticación con JWT.
  • Actualizar la información de perfil para usuarios.
  • Eliminar cuenta.
  • Activación de la cuenta.
  • Restablecer contraseña.
  • Confirmación de un número telefónico.
  • Sistema de filtros de búsqueda para inmuebles.
  • Funcionalidades para administradores.
  • Sistema de envío de notificaciones para usuarios.
  • Sistema de envío de correos electrónicos.
  • Gestión de permisos de usuarios.

2. Tecnologías

3. Instalación del proyecto

Note

Asegúrese que Python 3.10 y poetry esté instalado en su sistema operativo.

Primero debes seguir las siguientes instrucciones y dependiendo de que manera quieres realizar la instalación seguiras los pasos para instalar el proyecto de manera manual o utilizando Docker.

  • Clonar repositorio: Para clonar este repositorio ejecuta los siguientes comandos.

    git clone https://github.com/CodingFlashOR/backend-inmobiliaria.git
    cd backend-inmobiliaria
  • Crear y activar entorno virtual: Creares un entorno virtual con el siguiente comando, en este entorno instalaremos todas las dependencias de este proyecto.

    poetry shell
  • Configurar variables de entorno: Crea un archivo con el nombre .env dentro del directorio backend-inmobiliaria. En este archivo se definiran todas las variables de entorno de este proyecto. Las variables que se deben configurar son las siguientes.

    # DJANGO
    KEY_DJANGO=<value>
    
    # SMTP settings
    EMAIL_HOST_USER=<tu correo electrónico>
    EMAIL_HOST=smtp.gmail.com
    EMAIL_HOST_PASSWORD=<contraseña de aplicación de tu correo>
    EMAIL_PORT=587
    EMAIL_USE_TLS=true

    El valor de la variable KEY_DJANGO lo puedes obtener ejecutando los siguientes comandos. Primero iniciamos el intérprete de Python.

    python3

    El siguiente comando te va retornar el valor de KEY_DJANGO que deberas copiar en el archivo .env.

    from django.core.management.utils import get_random_secret_key; print(get_random_secret_key()); exit()

    Para el envío de mensajes a través de correo electrónico tienes que tener una contraseña de aplicación que permita al sistema de gestión inmobiliario autenticarse y poder utilizar el servicio de mensajería.

3.1. Instalación manual

  • Paso 1 (instalar dependencias): Para instalar las teconologias y paquetes que usa el proyecto usa el siguiente comando. Asegurate estar en el directotio raíz.

    poetry install
  • Paso 2 (realizar migraciones): Las migraciones son archivos que registran y aplican cambios en la estructura de la base de datos, como crear o modificar tablas y campos, asegurando que la base de datos esté sincronizada con los modelos definidos en el código. Migramos los modelos del proyecto con el siguiente comando.

    python3 api_inmobiliaria/manage.py migrate --settings=settings.environments.development
  • Paso 3 (configurar grupo de usuarios): Un grupo de usuarios se refiere a una entidad dentro de un sistema o aplicación que agrupa a varios usuarios bajo un mismo conjunto de permisos, roles o privilegios. Esto se utiliza para simplificar la gestión de acceso y permisos en sistemas donde hay múltiples usuarios. Para crear los grupos configurados paraeste proyecto ejecuta el siguiente comando.

    python3 api_inmobiliaria/manage.py configureusergroups --settings=settings.environments.development
  • Paso 4 (iniciar el servidor): Para iniciar el servidor de manera local ejecuta el siguiente comando.

    python3 api_inmobiliaria/manage.py runserver --settings=settings.environments.development

3.2. Instalación con Docker

  • Paso 1 (Construir imagen): para construir la imagen del contenedor de este pryecto debes ejecutar el siguiente comando.

    docker build -t api_inmobiliaria .
  • Paso 2 (Correr imagen): para iniciar el contenedor de este pryecto debes ejecutar el siguiente comando.

    docker run -e ENVIRONMENT=development -p 8000:8000 api_inmobiliaria

De esta manera podrás usar todas las funcionalidades que este proyecto tiene para ofrecer. Es importante que hayas seguido todos los pasos explicados en el orden establecido.

4. Comandos disponibles

Este proyecto incluye algunos comandos personalizados de Django que puedes utilizar para facilitar el desarrollo y la administración. A continuación se describe cada uno de los comandos y su funcionalidad.

4.1. Configurar grupos de usuarios

Este comando configura los grupos de usuarios predefinidos en el sistema, asignando los permisos necesarios a cada uno. Facilita la administración de roles y permisos en la plataforma.

python3 api_inmobiliaria/manage.py configureusergroups --settings=settings.environments.development

4.2. Borrar JWT expirados en la base de datos

Este comando elimina de la base de datos todos los JSON Web Tokens que hayan expirado. Es útil para mantener la base de datos limpia y optimizar su rendimiento.

python3 api_inmobiliaria/manage.py flushexpiredjwt --settings=settings.environments.development

5. Tests

Para correr las pruebas del proyecto debes ejecutar el siguiente comando.

pytest

6. Contributores

Si está interesado en contribuir a este proyecto, consulte nuestra guía CONTRIBUTING para obtener información sobre cómo comenzar. Proporciona pautas sobre cómo configurar su entorno de desarrollo, proponer cambios y más. ¡Esperamos sus contribuciones!

7. Documentación

Título Descripción
Especificación de requerimientos Este documento detalla los requerimientos funcionales, no funcionales y el comportamiento de las diferentes interfaces del sistema.
Base de datos Esquema de la base de datos del proyecto.
Documentación de la API Esta es la documentación para la API del proyecto, que incluye detalles sobre los endpoints disponibles y los datos que se pueden enviar y recibir.

8. Repositorios relacionados

9. Colaboradores

A continuación se presentan a las personas que están aportando al desarrollo de este proyecto.

Nombre Enlaces Roles
Lucas A Bravi LinkedIn - Portafolio Diseño UX/UI
Anabel García Lannes LinkedIn - GitHub Diseño UX/UI
Flor Rivas Luna LinkedIn - GitHub - Behance Diseño UX/UI
Leandro Emanuel Diaz GitHub - LinkedIn Frontend
Ignacio Nicolas Basilio Buracco GitHub - LinkedIn Frontend
Carlos Andres Aguirre Ariza GitHub - LinkedIn Backend - Frontend
Nadia Mariana LinkedIn QA
Yisell Coello Labrada LinkedIn QA

About

Este repositorio contiene el código fuente de la API para un sistema de gestión inmobiliario, diseñado para facilitar la administración y seguimiento de propiedades, clientes y transacciones inmobiliarias.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.7%
  • HTML 4.4%
  • CSS 1.1%
  • Other 0.8%