Curso: Ingeniería de Software (CC4401)
Fecha de Entrega: 25 de noviembre de 2025
Integrantes:
- Amaranta Godoy Torres
- Constanza Triviño A.
- Lucas Poblete
- Nicolás Espinoza C.
- Pablo Carrasco P.
- Jorge Cummins
Cuerpo Docente:
- Profesora de Cátedra: Jocelyn Simmonds
- Profesor Auxiliar: Joel Riquelme P.
Misc. Entrega:
Repositorio que contiene el desarrollo del proyecto, en el contexto del proyecto final del curso y de la entrega de la Sprint 2.
"PanoramApp" es una aplicación web diseñada para facilitar a los usuarios la búsqueda y creación/publicación de panoramas. En esta aplicación, un usuario registrado puede explorar panoramas compartidos por otros usuarios de la aplicación, haciendo más sencillo descubrir nuevas actividades y experiencias.
"PanoramApp" es una plataforma colaborativa donde los usuarios pueden descubrir y compartir actividades recreativas en Santiago de Chile. El sistema permite filtrar panoramas según múltiples criterios como tipo de actividad, presupuesto, horarios, días de la semana y tipo de compañía, facilitando encontrar la actividad perfecta para cada ocasión.
Los usuarios pueden crear sus propios panoramas, valorar actividades mediante likes y explorar una base de datos en constante crecimiento con opciones para todos los gustos y presupuestos.
Dependiendo del contexto, se utilizaron las siguientes tecnologías:
- Lenguaje de programación
python, frameworkDjango. - Manipulación de datos1: sqlite3 y manipulación usando la librería
pandasenpython.
- Estético: HTML y CSS.
- Interactividad: JavaScript (sin framework).
Python 3.7o superior.- Gestor de paquetes de
pythonpip.
Instalacion2
- Clonear el repositorio y posicionarse en el repositorio:
git clone https://github.com/DCC-CC4401/2025-2-CC4401-grupo-5.git
cd 2025-2-CC4401-grupo-5/-
Crear un entorno virtual de
pythono utilizar uno ya existente a preferencia. -
Activar el entorno virtual e instalar dependencias ejecutando:
pip install -r requirements.txt- Migrar/actualizar la base de datos:
python manage.py migrateLa ejecución de este proyecto actualmente solo se realiza de forma nativa; esto es, solo puede accederse desde el dispositivo donde se está ejecutando como localhost. Para ejecutar el proyecto:
- Con el entorno virtual activado, ejecutar:
python manage.py runserver- Entrar al link local: http://127.0.0.1:8000/landing
El proyecto tiene las siguientes rutas y vistas:
/landing:landing()/tareas:tareas()/resultados/:resultados_panoramas()/resultados-filtros:resultados_panoramas_filtrados()/register:register_user()/login:login_user()/logout:logout_user()
Donde se tienen además los siguientes endpoints:
- Ruta:
/panorama/<id>/detalle/; Método:GET; Descripción: obtiene detalles de un panorama. - Ruta:
/panorama/<id>/like/; Método:POST; Descripción: incrementa likes de un panorama.
Estructura del Proyecto3
Se incorpora el siguiente árbol de directorios del proyecto4:
Proyecto/
.
├── app_final.png
├── base_de_datos
│ ├── base_de_datos.py
│ └── panoramas.csv
├── categorias
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── categorias.json
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── db.sqlite3
├── diagrama_ER.png
├── dummy.py
├── error_sin_template.png
├── manage.py
├── media
│ ├── readme
│ │ └── ingreso_panorama.png
│ └── tareas
│ ├── bici_nocturna.jpg
│ ├── buinzoo.jpg
│ ├── cafe_providencia.webp
│ ├── cata_cervezas.jpg
│ ├── cineplanet.webp
│ ├── escape_room.jpg
│ ├── fantasilandia.webp
│ ├── happyland.jpg
│ ├── japimax.webp
│ ├── mercado_central.jpg
│ ├── mote.jpeg
│ ├── muro_boulder.jpg
│ ├── museo_de_bellas_artes.jpg
│ ├── parque_esculturas.jpeg
│ ├── planetario_usach.jpg
│ ├── pool.webp
│ ├── quebrada_macul.jpg
│ ├── santuario_natural.webp
│ ├── taller_ceramica.jpg
│ ├── teatro_mori.jpg
│ ├── tour_lastarria.jpg
│ └── volleyball_florida.png
├── README.md
├── requirements.txt
├── todoapp
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── static
│ │ └── todoapp
│ │ ├── dark_mode.js
│ │ ├── pages
│ │ │ ├── landing.css
│ │ │ ├── login.css
│ │ │ ├── menu_index.css
│ │ │ ├── register_user.css
│ │ │ └── resultados.css
│ │ ├── panorama_detalle.js
│ │ └── panorama_likes.js
│ ├── templates
│ │ └── todoapp
│ │ ├── index.html
│ │ ├── landing.html
│ │ ├── login.html
│ │ ├── menu.html
│ │ ├── register_user.html
│ │ └── resultados.html
│ ├── urls.py
│ └── views.py
└── TODOproject
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
Footnotes
-
Bases de datos. ↩
-
Esto considera que el usuario que quiere ejecutar/instalar el programa/página sabe manipular un entorno virtual de Python. ↩
-
Existen directorios cuyos nombres son variantes de "TODO"; la razón es que se usó la misma plantilla de la primera clase auxiliar. Esto no afecta en nada al funcionamiento del proyecto. ↩
-
El árbol incluye directorios usados; ignora aquellos generados por Django, como los cpython, además de los entornos virtuales. ↩