Code Monkey home page Code Monkey logo

fla.gr's Introduction

fla.gr - ALL THE BOOKMARKS

A bit of introduction:

fla.gr grew out of my increasing hate for the interface on delicious and a need to always have bookmarks accessible from just about anywhere. I also was looking for a basic scratchpad, with some formating options, preferably markdown enabled. As a result of having just started working with gevent and having built my Seshat framework, I figured this was the perfect time to go about making a new bookmarking service that was what I wanted. And so, with many co rewrites, many revisions and lots of refactoring, I've been slowly building fla.gr from the ground up.
Early versions of fla.gr grew from Seshat, and were powered by a funky, worth nothing UI framework that was meant to be a bridge between Twitter's Bootstrap styled HTML, and Python. I didn't want to go the route of using something like Cheetah or serving a single page app and then making fla.gr an API, and it resulted in a lot of head banging, and pain. In the end, I've gone for Cheetah to render all the templates, and have stuck to writing just plan Python and HTML as mostly separate systems.

What you need:

A web server, I personally use Lighttpd, fastCGI and support to use it with the webserver, ZeroMQ, Redis, CouchDB, Python 2.7, node.js, and all the node packages and the python packages. The simplest way to get the python and node.js packages and generate the templates is to do:

npm install
mkvirtualenv flagr
pip install -r requirements.txt
make flagr

After this you'll have to setup your static folder so the content in interface/resources/ is available at /static on your web server, along with fastCGI setup to send all results to the server, except for /static to localhost:8080 or whatever port you specify in config.json. For an example of how I do this with my personal dev server see the files included in serverConfig and take a look at seshat/framework.py To make sure your fla.gr server and your webserver are going to play nice with each other. Finally:

cd flagr_core ./firstTime.py ./app.py noDaemon

To test fla.gr out (you might have to chmod +x)

It's recommend by Me to run fla.gr in a Python virtualenv just to be safe and to make sure everything runs smoothly even if you have a more up to date system than I do.

If you have problems with fla.gr not starting due to a NULL result without error in PyObject_Call this is a known problem with GCC4.8, so please try:

pip uninstall greenlets CFLAGS="-O0" pip install greenlet==0.4.0

I won't be of much help if the problem persists, as it is, at the moment, a Greenlets problem. I will only help out if this is something that is directly related to code that I wrote in fla.gr. Aka: Send bug reports and crash dumps to the appropriate project.

fla.gr's People

Contributors

joshashby avatar

Watchers

James Cloos avatar

fla.gr's Issues

User list in admin panel is broken

Throwing

flagr/flagr_core/controllers/admin/users/adminViewUsersController.py"
line 35, in GET for user in users.rows: 
AttributeError: 'list' object has no attribute 'rows'

Which seems to point at recent model work messing something up.

Search is broken

It appears that the template is throwing a NotFound error for both personal and public searches.

Test suite

There is currently the issue of tests, changing something might break half of fla.gr however the only way to know currently is if you restart the daemon and poke around every pages until your sure nothings wrong. This should be fixed by a suite of unittests. Several of these already exist for testing the core functionality of seshat, however they should probably be extended to test all models, utils and other things used in fla.gr, along with making a call to every page with every method, just to be sure it works.

I believe nose and webOrb are good starting points for with, and making sure things work properly. The overall structure of some parts, such as models might need to be changed to allow for test mock objects which can aid in testing, so this should be a major change and deserves it's own branch until ready.

Later on, testing of the HTML and Javascript for the client side of things might be something to look into also.

Interface redesign/rework

I'm not a designer, and I tend to make things that are pretty ugly; Therefore I should probably look into getting some help or insight into the interface and how it could be made cleaner and easier to use.

Add documentation

While fla.gr itself is a platform more or less, it still includes a fair deal of lower level modules that could be transferred to other projects, or extended. These include models, utils, and seshat.

As a result I have been working on getting some better doc strings into fla.gr and now have a branch for docs which uses sphinx to generate nice docs for all of fla.gr.

Add disable property to buckets

Buckets currently don't have a way to say "enabling this feature needs to disable that one." This is currently best seen with the registration bucket and the beta closed invite bucket. If registration is opened, then the closed invite system should be disabled.

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.