dynamic_content
Content Management System for web application.
The goal is to create a fast and easily expandable, modular CMS for every use imaginable. When finished and polished the core should be usable with only very few modules to allow custom application as well as provide a good amount of common functionality in the core modules to make getting started quick and easy.
It is by no means feature complete. Pull requests, contributions and feedback are very much welcome.
100% Python 3
Documentation
Requirements
- Database
- SQLite, in memory for testing or persistent (included in python stdlib)
- Mysql/MariaDB database, tested for >= v. 5.5
- PostgreSQL (untested, no example config)
- Libraries
- Python >= 3.2 + python stdlib
- peewee orm
- MySQL Connector/Python library for database connection (only if using mysql)
- PostgreSQL driver??
Installation
- Clone the repository
git clone https://github.com/dynamic-content/dynamic_content.git
- Navigate to the root folder (should be
dynamic_content
) - Start the application by either
- Invoking the python interpreter
python3 dynamic_content demo_app
You can specify the--host
and--port
(default 'localhost:9012') Full information on the supported command line options can be found by calling the script with-h
or--help
- Starting the shellscript
./start.sh
- Invoking the python interpreter
- Open the webpage
choosen_host:choosen_port
with the browser of your choosing, the default beinglocalhost:9012
You can look at and manipulate the settings at demo_app/setting.yml
Roadmap
- Finish basic features
- common elements (menus/blocks) ✓
- text content ✓
- authentication ✓
- authorization ✓
- file access ✓
- theme based styling ✓
- configuration and editing via web interface ✘ (partially done)
- module based handling of editing and content ✓ (for all currently available content types)
- Extensibility
- Added several decorators to allow easy use of core functionality
- Added dynamic path mapping allow for easy addition of custom controllers
- Added hook system to allow plug-in code
- Added middleware for plug-in request handling
- MISC Features
- Special handling for other requests like traceroute etc. ✘
- SQLite integration ✓