Coder Social home page Coder Social logo

crem's Introduction

CREM

Convention Resource Event Management

Purpose

This web app will help a small team of convention organizers schedule a huge number of events for a highly-diverse multi-track convention, such as Penguicon, identifying all resource conflicts.

Penguicon has about 500 events over a single weekend, in about seventeen different tracks, each track with its own organizer.

For years, Penguicon has planned its schedule using two systems, and kept them in sync manually.

In a spreadsheet, we represented rooms as columns, and times as rows, so we can catch conflicts. But that doesn't store the event description, the topics, whether or not it is "just an idea"/"probably happening"/"confirmed", and other important data.

A database allowed us to store and present a schedule with all the details associated with each event. But the databases we have used could not catch conflicts in which two events are scheduled in the same room at the same time, or a presenter in two places at one time, or duplicated events or presenters.

We are creating C.R.E.M. because we need one solution which stores all the data we use, and also alerts us to conflicts.

Prerequisites

To develop for this project, you will need node, grunt, and bower. Download node from https://nodejs.org/en/download/ and install it.

Then use this on the command line for node package manager (npm) to install bower and grunt: npm install -g bower grunt-cli

Note: If you install node from a repository, it may be installed as nodejs rather than node, which will cause problems with subsequent steps in this procedure. To make sure that the node command will work correctly, enter the command node --help. You should see options for running node. If instead you see an error indicating that the command was not found, you will need to create a symbolic link from node to nodejs. (The steps to do this depend on your operating system.)

Installation

In the project directory, execute ./install.sh (on Mac or Linux), or install.bat (on Windows). This step only needs to be performed once.

This will do two things. First it will create a Python virtual environment called venv and install a version of Python in it.

Note: one of the python packages installed is bcrypt, which requires the libffi system package. If you are running a debian-based distribution such as Ubuntu, you would install libffi-dev with the command:

sudo apt-get install libffi-dev

The second thing will be to run bower install which will install a folder app/static/lib full of Javascript third-party dependencies.

We won't change the contents of third-party dependencies; instead we will only edit bower.json which determines which versions of dependencies we will use, managed by Bower.

If you install CREM in a production environment, be sure to update the value of SECRET_KEY in secretkeys.py. (See the documentation in secretkeys.py for an explanation of how to do this.)

Activating the Virtual Environment

The steps below require that you activate the virtual environment.

In Linux, activate the virtual environment with the command:

source venv/bin/activate

In Windows, activate the virtual environment with the command:

venv\Scripts\activate

Creating the Database

Activate the virtual environment as described above. Then create the database with the command:

python db_create.py

If you have already previously run this command, you will see the file app.db.

Adding Test Data

Activate the virtual environment as described above. Then add test data to the database with the command:

python dev/add_testdata.py

Running the Application

Activate the virtual environment as described above. Then start the application with the command:

python run.py

The application will now appear at http://localhost:5000.

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.