Este proyecto de CMS, desarrollado con Flask como backend en Python y Bulma como framework CSS, nuestro objetivo es ofrecer una experiencia de usuario robusta y funcional. El proyecto incorpora una variedad de características avanzadas y se centrará en ofrecer un CMS completo y funcional pero con un look & feel totalmente minimalista.
- Operaciones CRUD: Capacidad completa para Crear, Leer, Actualizar y Eliminar posts del blog.
- Gestión de Usuarios: Sistema de usuarios y roles semejante a wordpress.
- Edición en Markdown: Los posts pueden ser editados utilizando Markdown, mejorando la flexibilidad y control sobre el contenido.
- Programación de Publicaciones: Los posts pueden ser programados para publicarse en una fecha y hora futura.
- Newsletter: Envío de correos masivos a suscriptores utilizando servicios SMTP de Gmail, Outlook, o cualquier otro proveedor. La configuración del correo se maneja a través de variables de entorno.
- Suscripción a Newsletter: Los usuarios pueden suscribirse para recibir actualizaciones y newsletters. Los correos sólo se envían a los usuarios que hayan confirmado su suscripción previamente, algo que se hace mediante un token enviado al correo del ususario y que expira a las 24 horas.
- Interfaz con Bulma: Utilización de Bulma para un diseño limpio y responsivo, garantizando una buena experiencia de usuario.
- Dark y Light theme: Los usuarios y lectores pueden seleccionar el theme para explorar o emplear el Site.
- SEO Friendly: Gestión de etiquetas y tags, urls amigables con slugify, generación dinámica de robot.txt y sitemap.xml
- Deploy en docker: De momento, el proyecto puede desplegarse usando contenedores docker y empleando Waitress como WSGI en producción.
El proyecto está completamente centrado en Python, utilizando Flask como framework para el backend. Esta elección permite una rápida y eficiente creación de aplicaciones web, aprovechando las capacidades y simplicidad de Python. El desarrollo sigue una lógica modular y el objetivo es permitir en un futuro la incorporación de más módulos sin afectar en gran medida el código principal.
-
Clonar el repositorio:
git clone https://github.com/gabrielbaute/octopus-cms.git cd octopus-cms -
Crear un entorno virtual y activar:
python -m venv env source env/bin/activate # En Windows usa `env\Scripts\activate`
-
Instalar las dependencias:
pip install -r requirements.txt
-
Configurar las variables de entorno: Crea un archivo
.enven la raíz del proyecto y añade las siguientes configuraciones:SECRET_KEY='alguna_clave_muy_segura' SQLALCHEMY_DATABASE_URI='sqlite:///site.db' SMTP_SERVER='smtp.gmail.com' SMTP_PORT=587 EMAIL='tu_email@gmail.com' APP_PASS='tu_password_app' FROM='Blog <tu_email@gmail.com>'El proyecto también incluye un archivo example.env en donde encontrará otras variables de entorno para configurar.
-
Inicializar la base de datos:
flask db init flask db migrate -m "Inicializar base de datos" flask db upgrade
-
Ejecutar la aplicación:
python run.py
Ten en cuenta que si vas a trabajar en producción, debes pasar
DEBUG=Trueen las variables de entorno. Esto cambiará el servidor del servidor de pruebas de Flask al servidor WSGI de Waitress. No es recomendable emplear el servidor de Flask en producción ni el modo DEBUG. -
Abrir el navegador y navegar a
http://localhost:5000(o el puerto que hayas designado en las variables de entorno) para ver la aplicación en funcionamiento.
Si deseas contribuir a este proyecto, por favor abre un issue o envía un pull request. Este proyecto se encuentra en desarrollo activo, y se planea incorporar más funcionalidades en el futuro. ¡Todas las ideas y aportes son bienvenidos!
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.