Tabla de Contenidos:
Aplicación web que funciona como una lista de tareas, que posee un sistema de usuarios y con ello la capacidad de agregar a otros usuarios como amigos.
Además:
- Varias listas por usuario.
- Poder visualizar listas de otros usuarios y su progreso.
- Mostrar actualizaciones del progreso de amigos en el Feed de Actividad.
Este proyecto se realizó para:
- Entrenar habilidades de desarrollo Front End con CSS y JS.
- Aprender y familiarizarse con Back End y prácticas usuales u óptimas.
- Entrenar el diseño y construccion de bases de datos SQL.
Posibles añadidos al proyecto pueden ser:
- Ajustar visibilidad de listas especificas de usuario.
- Mensajería entre usuarios amigos.
Para empezar, se requiere python>=3.7.7
.
Para esto, primero hay que clonar el repositorio:
$ git clone https://github.com/GianK128/Flask-To-Do-List
$ cd Flask-To-Do-List/
Se recomienda crear un entorno virtual de python para el proyecto, si se usa venv
:
$ python3 -m venv my_venv
$ source my_venv/bin/activate
Y luego instalar las dependencias:
$ pip install -r requirements.txt
Conviene crear un archivo .env
en la carpeta raíz del proyecto, con las variables de entorno vitales para la aplicación:
# .env
APP_SECRET_KEY=my_secret_key
APP_SECURITY_PASSWORD_SALT=my_password_salt
[email protected]
APP_MAIL_PASSWORD=password_token
Y luego establecer una manera de cargarlas dentro del programa, en este caso, con el modulo dotenv
:
$ pip install python-dotenv
Y luego en el archivo __init__.py
, cargar las variables:
# todo_list/__init__.py
# imports...
from dotenv import load_dotenv
load_dotenv()
# construir app...
Entonces, ya podríamos realizar el ante-último paso, y crear la base de datos con el archivo ya creado:
$ python3 create_database.py
Y ya se debería poder correr la aplicación:
$ python3 run.py
Revisitaré este proyecto en el futuro para:
- Corregir errores publicados en Issues.
- Hacer un diseño CSS Responsive con un acercamiento Mobile-First.
- Convertir el back end a una API REST y manejar todo con solicitudes desde JS.
- Convertir el front end a una aplicación de React.
- Agregar las funcionalidades descritas en Objetivos del proyecto.