Website

Ferme

Demo e-commerce website

Description

Demo e-commerce website made with Django, Bootstrap 5 and Oracle SQL for my graduation project.

Features

Products page with filters and search, product details page and cart button.

Products page

Dev enviroment setup

Pre-requisitos:

Python 3+, dependencias listadas en requirements.txt, Docker/Podman

Organización de archivos:

Scripts y modelos de la base de datos se encuentran en la carpeta /scripts_oracle. El proyecto utiliza el patrón de Django MVT

Setup ambiente de desarrollo:

  1. Clonar repositorio
git clone https://github.com/Jaycedam/ferme-website.git
cd ferme-website
  1. Crear entorno virtual de Python e instala dependencias
python3 -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt
  1. Usar container para Oracle SQL Free (Docker/Podman)

Ejemplo con Podman, instala aquí. Utilizaremos Oracle Database 23ai Free Lite, ve detalles del container aquí.

podman run -d --name oracle-db -p 1521:1521 container-registry.oracle.com/database/free:23.6.0.0-lite
  1. Revisa que el container se encuentre en estado “healthy” antes de proceder:
podman ps
  1. Cambia la contraseña de la bd:
podman exec <oracle-db> ./setPassword.sh <your_password>
  1. Copia los scripts de la carpeta /scripts_oracle a la carpeta /scripts_oracle del container:
podman cp scripts_oracle/ oracle-db:/tmp/scripts_oracle
  1. Luego conecta con sqlplus
podman exec -it oracle-db sqlplus sys/admin@freepdb1 as sysdba
  1. Aquí debes crear un usuario y asignarle los permisos necesarios. Para desarrollo local podemos asignar todos los permisos para poder comenzar rápido. Ejemplo:
CREATE USER ferme IDENTIFIED BY password;
GRANT ALL PRIVILEGES TO ferme;
  1. Ingresando con el nuevo usuario en sqlplus, comienza a ejecutar los scripts de la carpeta /scripts_oracle en orden (1, 2, 3 y opcionalmente 4).
@/tmp/scripts_oracle/1.SCRIPT_CREACION_TABLAS.ddl
@/tmp/scripts_oracle/2.SCRIPT_INSERTS.sql
@/tmp/scripts_oracle/3.TRIGGERS_AND_SP.sql
@/tmp/scripts_oracle/4.INSERT_PRODUCTOS_MUESTRA.sql
  1. Actualizar USER/PASSWORD de Oracle en ferme/settings.py con el nuevo usuario creado.
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.oracle",
        "NAME": "localhost:1521/freepdb1", # freepdb1 is the default pluggable db name in the oracle container
        "USER": "ferme",
        "PASSWORD": "password",
    }
}
  1. Realiza las migraciones de la base de datos y crea un superusuario
python manage.py migrate
python manage.py createsuperuser
  1. Corre el servidor para comprobar que todo está funcionando correctamente:
python manage.py runserver