CREM
CREM is the Convention Resource and Event Management system, used for scheduling events, presenters and locations at a convention. CREM goes above and beyond most scheduling applications: it doesn't just give you a calendar to plug events in, it will also give you scheduling suggestions and even calculate your entire schedule based on the parameters that you give it.
Have multiple speakers on a single panel? No problem! CREM allows you to plug in the times that each speaker is available, and CREM will figure out when the panel can occur. Have large ballrooms that can be divided into smaller rooms at different times of the day? CREM can track each of the different room divisions. It will generate your schedule as a list or an easily-readable table. CREM will also notify you when scheduling conflicts occur and can't be resolved easily.
CREM is written in Python using the TurboGears 2 web framework. CREM is licensed under the GPL 3.
Joining the CREM Development Team
Please browse our source code, and if you like the project we'd love for you to help out! Just visit our mailing list -- anyone can join -- and introduce yourself. Let us know what you'd like to do, and we'll help you get started with CREM.
What's New
April 19, 2010
Announcing CREM Rebirth Without TurboGears
It's been a long time since progress was made on CREM. We ran into a wall. Every time we sat down to work, TurboGears had changed and our development environments no longer worked. We tried to stabilize on a past version of TurboGears which would not change, but the TurboGears developers don't seem to understand the concept of "version". They kept applying changes retroactively to past versions. I was spending 100% of my CREM time setting up my development environment from scratch, with no time left over to work on CREM itself.
Most of the developers have expressed a willingness to migrate CREM to a different web framework. Our experience has proved that our first priority must be stability.
The choice came down to Django for Python, or Ruby on Rails. Ease-of-use is pretty much a toss-up. I know that although Bruce is willing to move to Ruby if necessary, he prefers Python. Jen slightly prefers the programming style of Ruby but ultimately chooses Python for its speed and libraries. As for me, I like the Python community. So Django it is.
We are not at square one. Using our documentation and our existing code as a reference, we can get back to the 0.1 point-release. With my newfound skills in Javascript, my usefulness to the project will have a wider range.
-Matt Arnold
June 21, 2009
Version 0.2 has just been released, and we're very excited! The basics are in place, and we're ready to start working on some of the more amazing aspects of CREM, like modularity, user management, and conflict catching. It's wonderful to watch an application start coming together as fast as CREM has so far, and many thanks to our development team for making it happen!
May 13, 2009
Our Trac and SVN systems are now more user-friendly. Thanks to a new plug-in, it's just a few easy clicks away to get an account on the Trac site in order to submit tickets, edit wiki pages, and get subversion access. Just look for the Register link in the upper right corner of the page. Joining the mailing list is still a separate task.
March 5, 2009
We've completed version 0.1! Who's hosting the beer party?
While it still has a ways to go before it's ready to be released for general use, we've come a long ways. We've completed a major portion of the design process, and version 0.1 has established the framework we'll be using for the rest of the project. Be sure to check out our page on version 0.1 for more information, and congratulations to everyone who helped us get there!
February 20, 2009
We've moved from our old home at miscellaneouswhatnot.net to penguicon.org, thanks to help from Ron Blanchett and Matt Arnold. It's been a bit of a rough move, and we're still working on it, but we hope to have things up and running soon!
We've also been checking out TurboGears 2, and we love what we've seen: WSGI and REST, built-in SQLAlchemy, and a whole host of other nifty features. So since we're still in the early stages of CREM, we thought it would be a great idea to move the project over from the original TurboGears. CREM now runs on TurboGears 2; the installation instructions are up-to-date and the new source code is in the repository.
Documentation
Orientation for the New CREM Developer
- The CREM Solution - describes the problem that CREM will solve.
- Application Requirements describes the requirements for CREM.
- Terminology gives explanations of some of the terms used to talk about CREM.
- Coding Style lists the coding style guidelines for this project.
Design Documents
- Understanding the Model shows a high level view of CREM's database structure.
- Overview of the Controllers explains the relationships and conventions used in the underlying code.
- A Look at the Views gives the design principles used in creating the look and feel of CREM.
- Ideas shows ideas we want to capture but may not have a place for yet.
Current Versions of the Project
- Version 0.1 (dev) - Completed March 5, 2009
- Version 0.2 (dev) - Completed June 21, 2009
Meeting Information
Installing CREM
- Installing and Starting CREM for Linux Users explains how to:
- install the latest version of CREM from the Subversion repository
- load test data into the development database
- start CREM in development mode
- use the CRUD Admin interface
- Installing and Starting CREM for Windows Users is identical to the tutorial above, but for Windows
- Subversion Access for Beginning CREM Developers
Python Resources
- The Python Help File (CHM), which can be viewed with GnoCHM in Linux (this help file is already included in the Python installation for Windows).
- The Style Guide for Python Code (PEP 8).
- The Zen of Python (PEP 20).
- Antigravity
TurboGears Resources
- TurboGears 2.0 documentation
- SQLAlchemy documentation
- Start with the tutorials.
- The home page of the Genshi templating system
- And the Genshi documentation
- Formencode is used for form validation.
Other Resources
- The SQuirreL SQL Client is a nice tool for viewing and working with databases. It requires the Java Runtime Engine (JRE). SQuirreL is released under the GNU Lesser General Public License.
- In order to use SQuirreL with SQLite, you'll need the SQLiteJDBC driver. Download the sqlitejdbc-vNNN.jar file and install it as SQuirreL driver (see these instructions). SQLiteJDBC is released under a BSD license.
- There are many good editors out there. A good general purpose editor is JEdit, which also requires the JRE. Checkout JEdit's extensive set of plugins. JEdit is released under the GPL license.
Installing TurboGears
- How To Install TurboGears 2 explains how to install virtualenv for a Python virtual environment, and how to install TurboGears 2 in that environment. These are general purpose instructions; if you are installing CREM you should instead follow the instructions on the Installing CREM page.
