FoodMap es un proyecto que consite en una aplicación web implementada con Django desarrollada por estudiantes pertenecientes a la Facultad de Ciencias Físicas y Matemáticas de la Universidad de Chile. Esta aplicación se encuentra relacionada al ámbito gastronómico, permitiéndole al usuario obtener una lista de restaurantes que se ajusten a sus preferencias, como por ejemplo, disponibilidad de comida vegana, ubicación en una comuna específica, etc...
Estos usuarios pueden visitar la aplicación web de manera anónima, o bien pueden registrarse, con lo que adquieren la capacidad de llevar a cabo más acciones, como por ejemplo dejar reviews a restaurantes. En estas reviews, se considera un input de texto, así como una puntuación de entre 1 a 5.
La aplicación web consta de múltiples interfaces. A continuación se muestra la visualización de de estas, junto a una breve descripción de cada una, así como lo que el usuario puede hacer en cada una de ellas.
Esta es la primera interfaz que se ve al iniciar la aplicación web. En este apartado uno puede Registrarse o Iniciar Sesión. En el lado izquierdo es donde se colocarán los restaurantes al momento de registrarlos y se mostrarán en el mapa interactivo del lado derecho.
Esta es la interfaz a la hora de dar de alta tanto Clientes como Propietarios de Restaurantes, que dependiendo del tipo de usuario, son las funcionalidades que tendrán en el resto de interfaces.
En esta interfaz lo que hacemos es permitir que un Usuario/Propietario ingrese a la aplicación web con su cuenta, usando su nombre y su contraseña.
Esta interfaz es el Menú Principal, pero con las funcionalidades extras que tiene un Propietario, es decir que puede agregar y visualizar sus restaurantes agregados.
Al hacer clic en la sección Añadir un Restaurante, serás redirigido a la pestaña para dar de alta dicho restaurante con su información correspondiente.
Al finalizar el registro del restaurante, el Propietario es enviado a la Interfaz “Mis Restaurantes”, donde se muestran los restaurantes agregados por dicho Propietario.
Esta interfaz es el mismo Menú Principal, pero ahora con el restaurante agregado y visible en el mapa interactivo.
Al hacer clic en el nombre del restaurante desde el menú principal, se le mostrará la interfaz de datos del restaurante, que muestra la información del restaurante, junto a las reseñas de los clientes y propietarios. Si el usuario está logueado podrá realizar reseñas, con una puntuación de 1 a 5.
Esta es la interfaz para editar tu propia reseña, no es posible editar las reseñas de otros usuarios, pero aquí puedes cambiar el contenido, eliminar la reseña o volver a la interfaz de datos del restaurante anterior sin realizar ningún cambio.
Esta interfaz es el Menú Principal, pero desde el punto de vista del Cliente, donde no hay funcionalidades extras para agregar y ver restaurantes.
- Sistema de registro e inicio de sesión para los usuarios y propietarios.
- Sistema de registro de restaurantes para propietarios.
- Varios filtros para mostrar diferentes restaurantes según la preferencia del usuario.
- Opción de evaluación de restaurantes en cuanto a calidad (de 1 a 5).
- Opción para registrar y editar sus comentarios sobre un restaurante particular.
- Django: Un framework de desarrollo web escrito en Python
- Python: Lenguaje de programación usado para la lógica del Back End
- HTML, CSS : Herramientas de Front End que permiten que el usuario pueda visualizar las distintas interfaces.
- Archivos JSON: Utilizados para cargar datos predefinidos en el sistema, como las categorías de comida y las comunas.
Para poder interactuar con la aplicación web, se deben seguir los siguientes pasos:
- Crear un nuevo directorio
mkdir grupo2-2024
cd grupo2-2024
- Crear e inicializar un nuevo ambiente virtual
python -m venv sprint2
sprint2/Scripts/activate (windows)
$source sprint2/bin/activate (Linux)
- Clonar el repositorio en el directorio
git clone https://github.com/DCC-CC4401/2024-2-CC4401-grupo-2.git
- Asegurar que tengamos la ultima versión de pip instalada en el ambiente virtual (sprint1)
(sprint2) python -m pip install --upgrade pip
- Entrar a la carpeta donde está el proyecto
(sprint2) cd 2024-2-CC4401-grupo-2
- Instalar los paquetes que el proyecto requiere
(sprint2) python -m pip install -r requirements.txt
- Actualizar las tablas
(sprint2) python manage.py migrate
- Agregar datos para visualización
(sprint2) python manage.py loaddata categorias/categorias.json
(sprint2) python manage.py loaddata comunas/comunas.json
- Iniciar el servidor de Django
(sprint2) python manage.py runserver
Habiendo completado estos pasos, debería ser posible acceder a la aplicación web y navegar las distintas interfaces dentro de esta, pudiendo llevar a cabo las funcionalidades descritas en las secciones anteriores.