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.
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:
- Clonar repositorio
git clone https://github.com/Jaycedam/ferme-website.git
cd ferme-website
- Crear entorno virtual de Python e instala dependencias
python3 -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt
- 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
- Revisa que el container se encuentre en estado “healthy” antes de proceder:
podman ps
- Cambia la contraseña de la bd:
podman exec <oracle-db> ./setPassword.sh <your_password>
- Copia los scripts de la carpeta /scripts_oracle a la carpeta /scripts_oracle del container:
podman cp scripts_oracle/ oracle-db:/tmp/scripts_oracle
- Luego conecta con sqlplus
podman exec -it oracle-db sqlplus sys/admin@freepdb1 as sysdba
- 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;
- 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
- 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",
}
}
- Realiza las migraciones de la base de datos y crea un superusuario
python manage.py migrate
python manage.py createsuperuser
- Corre el servidor para comprobar que todo está funcionando correctamente:
python manage.py runserver