GithubHelp home page GithubHelp logo

opentaste / bombolone Goto Github PK

View Code? Open in Web Editor NEW
74.0 20.0 20.0 4.22 MB

Bombolone is a tasty Content Management System for Python based on Flask, MongoDB, AngularJS, Sass and Bootstrap. It's designed to be a simple, flexible toolset for projects of any size.

License: Other

Python 52.30% JavaScript 15.90% CSS 9.99% Ruby 0.43% HTML 21.38%

bombolone's Introduction

Bombolone version 0.3.3

Bombolone is a tasty Content Management System for Python based on Flask, MongoDB, AngularJS, Sass and Bootstrap. It's designed to be a simple, flexible toolset for projects of any size.

Based from the Python and Angular implementation of Opentaste.co.

Important dependecies

Before starting check if you have all you need.

# Install Homebrew
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

# Install MongoDB
brew install mongodb

# Install Virtualenv
sudo pip install virtualenv

Important, if you use a Mac OSX please install the commandline tools manually from Apple's Developer site. developer.apple.com/downloads/…

Quick start

Just for running a new app let's follow these 6 steps.

# Clone the latest stable version in your new web app folder
git clone --branch 0.3.3 https://github.com/Opentaste/bombolone.git new_app && cd new_app

# Run Mongodb
sudo mongod

# Create your own environment from the new_app folder
virtualenv venv && . venv/bin/activate

# Install libraries
python setup.py install && cd bombolone

# Init Bombolone Mongodb
bombolone bake

# Run Bombolone 
bombolone serve

Registered users are:

  • Admin with username 'admin' and password 'admin123'
  • User with username 'user' and password 'user123'

Overview

Sometimes you simply don’t need to use all the features of a CMS. Bombolone lets you have a good core, with five modules are essential for almost all web applications.

You can control them from the administration panel, and each has different tools to edit, create or delete. It's important to note that beginning the application has two types of users: administrators and users. Administrator can do everything. Users can only edit content and other little things, but configurable to allow multiple levels of access depending on rank.

Core Modules

Users

Allows user administration:

  • Administrators : can create, modify or delete users.
  • Users : can only read the account list by default.

Rank

The rank module allows you to see what ranks are available.

Pages

Allows you to quickly create dynamic and static pages.

  • Administrators : can create, edit, modify or delete pages.
  • Users : can edit any content pages by default.

Languages

From here you can decide which languages you want the site to use.

HashTable

With the HashTable module you can create different hashmap be used inside modules or the site.

  • Administrators : can create, edit, modify or delete hash map.
  • Users : can edit any content of hash map by default.

How compile CSS

Setting up the ruby environment

gem update --system
gem install compass
gem install compass-h5bp

In a new tab with the same path run Compass

compass watch

Fabric command-line

We use Fabric to provide a basic suite of operations for executing local or remote shell commands, as well as auxiliary functionality such as prompting the running user for input, or aborting execution. If you find trouble to installing Fabric, you can check this page.

pip install fabric
sudo pip install yuicompressor

Available commands:

Check if is running the MongoDB database

fab check_database

Init the basic database

fab init_database            
fab local_backup

Minify .js files that have been changed since last run

fab minify                   
fab mongodb_restore
fab update
fab write_db_in_config

Tests

Python

Run python test

python unit_test.py 

Js Unit/Integration Tests

Before run the test, you need install some dependecies. Download and install Node from http://nodejs.org/download/ If you never use Protractor before you can have a quick intro here.

# Install Nvm
curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash

# Select Nvm
nvm alias default v0.10.29

# Installing all node packaged modules
npm install

# Install Protractor global
npm install -g protractor

# Install Selenium
webdriver-manager update

Run Unit tests

npm test

Run Integration tests not log in

webdriver-manager start
protractor conf.js

Run Integration tests as admin

webdriver-manager start
protractor conf.js --params.admin true --params.login.user 'admin' --params.login.password 'admin123'

Who we are

Python and Javascript Lovers!

The project was created by @zizzamia.

Contributors: @jibbolo, @proudlygeek, @diegor, @danmaccauro, @bernarpa.

The logo was designed by @FakeSamGregory.

License

  • BSD

bombolone's People

Contributors

devilicecream avatar jibbolo avatar plan-erlich-bachman avatar proudlygeek avatar zizzamia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bombolone's Issues

Init Bombolone Mongodb Error

Error when try to init Bombolone Mongodb:
$ mongorestore --db new_app --drop data/backup/mongodb/2014-07-29/bombolone
connected to: 127.0.0.1
Wed Oct 15 03:58:07.208 ERROR: don't know what to do with file [data/backup/mongodb/2014-07-29/bombolone]

The dev renamed the folder and forgot to change the command. For init bombolone mongodb, use this command:
$ mongorestore --db new_app --drop data/backup/mongodb/2014-07-29/new_app

Then, update config.py file at line 7. Change DATABASE = 'bombolone' to DATABASE = 'new_app'

Fix error in @check_authentication

The check_authentication decorator is write in admin.py line 19.

When this decorator is used as below,

@check_authentication
def admin_page():
    pass

it works, but when used by passing one or more parameters doesn't work.

@check_authentication
def admin_page(var_one, var_two):
    pass

Pillow dependencies

I got some errors when tried to install Pillow on ubuntu. "UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 44: ordinal not in range(128)", for example.

Pillow docs say that many of Pillow’s features require external libraries (libjpeg, zlib, libtiff, libfreetype, etc.).

Here a script to install some dependencies on ubuntu (https://gist.github.com/fernandojunior/17b027e3d5996721abe3)

Improve Readme

Better explanation how run

  • js unit test
  • js integration test
  • python test

fab mongodb_restore doesn't work, error in config.py truple needed instead of dictionary

running fab mongodb_restore gives an error for EXTENSIONS_REQUEST. it is written as a dictionary but must be a truple.

below is the diff needed

diff --git a/app/config.py b/app/config.py
index 342f9dc..000f607 100644
--- a/app/config.py
+++ b/app/config.py
@@ -52,7 +52,7 @@ ALLOWED_ALL_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'g
 EXTENSIONS = {'png' : 'PNG', 'jpg' : 'JPEG', 'jpeg' : 'JPEG', 'gif' : 'GIF'}

 # ~
-EXTENSIONS_REQUEST = {'png', 'jpg', 'jpeg', 'gif', 'css', 'js'}
+EXTENSIONS_REQUEST = ('png', 'jpg', 'jpeg', 'gif', 'css', 'js')

 # ~
 LIST_LANGUAGES = ['ar','cn','de','en','es','fr','gr','it','jp','pt','ru','tr']

Unable to install

I am intrigued with your project. I too am working with Flask and interested in and have some experience with AngularJS. I tried without success to install this package on Ubuntu.
Is your REQUIREMENTS.txt current? You need everything in this file to run bombolone?

Create a demo

Create a demonstration website to show the CMS features.

CheckValue.full_name

CheckValue class, full_name method: is not really correct because it checks only a-z and does not allow accent letters such as à, ç, ê, ô.

We need improve the regex for take the full name variations of all countries.

TypeError: 'NoneType' object has no attribute '__getitem__'

TypeError: 'NoneType' object has no attribute 'getitem'

Traceback (most recent call last)
File "/home/frank/Downloads/bombolone-master/venv/lib/python2.7/site-packages/flask/app.py", line 1836, in call
return self.wsgi_app(environ, start_response)
File "/home/frank/Downloads/bombolone-master/venv/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/home/frank/Downloads/bombolone-master/venv/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/frank/Downloads/bombolone-master/venv/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/home/frank/Downloads/bombolone-master/venv/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/frank/Downloads/bombolone-master/venv/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/frank/Downloads/bombolone-master/venv/lib/python2.7/site-packages/flask/app.py", line 1473, in full_dispatch_request
rv = self.preprocess_request()
File "/home/frank/Downloads/bombolone-master/venv/lib/python2.7/site-packages/flask/app.py", line 1666, in preprocess_request
rv = func()
File "/home/frank/Downloads/bombolone-master/app.py", line 104, in before_request
return core_before_request()
File "/home/frank/Downloads/bombolone-master/before.py", line 68, in core_before_request
g.all_the_languages = g.languages_object.all_lang_by_tuple
File "/home/frank/Downloads/bombolone-master/core/languages.py", line 123, in all_lang_by_tuple
return [ (x , y) for x, y in sorted(names['value'].iteritems())]
TypeError: 'NoneType' object has no attribute 'getitem'

Here is the full terminal log:http://pastebin.com/NF7FjtMA

Simplify installation process

  • Advice to install mongodb by http://brew.sh/
  • Separate testing and css dependencies from the first running
  • Check in all the bower dependency
  • Remove fabric from the requirement to install everything
  • Move Fabric as requirement to use some special comand

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.