MPvHarmelen / Freevle

A good looking website package for schools, including visual awesomeness & an easy as pie CMS
http://freevle.org
10 stars 4 forks source link

Project Hiroshima: Rebuild the entire system in a different framework. #80

Open martijnarts opened 11 years ago

martijnarts commented 11 years ago

What?

Redesign and rebuild the entire Freevle system from the ground up, limit customizability making the system clearer. Work in the relative freedom of a different framework than Django (Flask provides such freedom, for example, combined with SQLAlchemy.

Why?

Django is a cool framework, but it has a couple flaws. One of the most important major flaws is that it's very restrictive. It doesn't allow you the freedom that other frameworks give you, and instead forces you to write your entire website in their little design. This wouldn't be too bad, except that it has steadily been increasing the amount of magic happening in our code, which in turn strongly decreases the readability and more importantly understandability of the code base. Obviously, it has some other weak points, like the strong abstraction happening in the database layer and the incredibly slow and sometimes plain stupid templating system.

That's not our only problems though: from the very beginning we've handled the entire development of Freevle the wrong way (which is mostly my fault). There's a couple of points that I would like to stress for the new version, which are:

After having written a couple of projects adhering to most importantly the first two points, I've realised that this is a much better way to develop a website, as you're setting very clear goals for yourself which are then easier to adhere to.

How?

Here is a to-do list of, well, things that need to be done before closing this rather massive issue.

Design code structures on paper

All of the items below should be written down somewhere and later linked to/written down here:

Then we can move on with finishing and happily maintaining Freevle, without hating our own guts every time we fix a bug or add a feature.

martijnarts commented 11 years ago

Why did I (possibly temporarily, if no one likes it) name it Project Hiroshima? Hiroshima was - as we are all very well aware - bombed in the second World War. Afterwards, though, it was rebuilt and became a prettier and better place than before. Could've also called it Rotterdam if I'd preferred, but I liked the idea of nuking the old Freevle more. ;)

MPvHarmelen commented 11 years ago

The old Freevle overheated and exploded and now we have to build a new one. It wasn't bombed like Rotterdam. And Rotterdam didn't become nicer =D

martijnarts commented 11 years ago

Flask

See http://flask.pocoo.org/. Here's a list of Flask extensions to look into:

While we might want to keep away from inactive/dead extensions, and we might even decide to use as little extensions as possible, we don't need to reinvent the wheel for everything.