Skip to content

Repo for OpenCFP project, a PHP-based conference talk submission system

License

Notifications You must be signed in to change notification settings

DenverChess/opencfp

 
 

Repository files navigation

OpenCFP Banner

OpenCFP is a PHP-based conference talk submission system.


Build Status Code Climate Test Coverage

README Contents

## Features
  • Speaker registration system that gathers contact information.
  • Dashboard that allows speakers to submit talk proposals and manage their profile.
  • Administrative dashboard for reviewing submitted talks and making selections.
  • Command-line utilities for administering the system.
  • JSON-API for selected use-cases. (Coming Soon!)
## Screenshots ![Front page](http://i.imgur.com/GDhX1lD.png) ![Login screen](http://i.imgur.com/VfNNch9.png) ![Speaker page](http://i.imgur.com/uw1qmbS.png) ![Talk page](http://i.imgur.com/pSreRoM.png) ![Admin area](http://i.imgur.com/1Vmnwbv.png) ![Admin talk review](http://i.imgur.com/3IRXDMg.png) ![Admin speaker details](http://i.imgur.com/3oSXzGQ.png) ![Admin talks dashboard](http://i.imgur.com/6Uu0OZu.png) ## Contributing

We welcome and love contributions! To facilitate receiving updates to OpenCFP, we encourage you to create a new personal branch after you fork this repository. This branch should be used for content and changes that are specific to your event. However, anything you are willing to push back should be updated in your master branch. This will help keep the master branch generic for future event organizers that choose to use the system. You would then be able to merge master to your private branch and get updates when desired!

## Requirements
  • PHP 5.4+
  • Apache 2+ with mod_rewrite enabled and an AllowOverride all directive in your <Directory> block.
  • Composer requirements are listed in composer.json.
  • You may need to install php5-intl extension for PHP. (php-intl on CentOS/RHEL-based distributions)
## Installation ### Cloning the Repository

Clone this project into your working directory.

Example:

$ git clone git@github.com:opencfp/opencfp.git
Cloning into 'opencfp'...
remote: Counting objects: 4794, done.
remote: Total 4794 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4794/4794), 1.59 MiB | 10.37 MiB/s, done.
Resolving deltas: 100% (2314/2314), done.
Checking connectivity... done.
### Installing Composer Dependencies

From the project directory, run the following command. You may need to download composer.phar first from http://getcomposer.org

$ php composer.phar install
### Specify Web Server Document Root

Set up your desired webserver to point to the /web directory.

Apache 2+ Example:

<VirtualHost *:80>
    DocumentRoot /path/to/web
    ServerName cfp.conference.com

    # Other Directives Here
</VirtualHost>
### Create a Database

Create a new database for the application to use. You will need to have the following handy to continue configuring your installation of OpenCFP:

  • Database server hostname
  • Database name
  • Credentials to an account that can access the above database
### Specify Environment

OpenCFP can be configured to run in multiple environments. The application environment (CFP_ENV) must be specified as an environment variable. If not specified, the default is development.

Add the following to the Apache .htaccess file at /web/.htaccess to specify a new environment variable.

SetEnv CFP_ENV production

Note: .htaccess already pre-set for development. Alter as needed.

### Configure Environment

Depending on which environment you specified above, you will need to make a copy of the distributed configuration schema to enter your own details into.

For example, if you specified SetEnv CFP_ENV production:

$ cp config/production.dist.yml config/production.yml

After making a local copy, edit config/production.yml and specify your own details. Here are some important options to consider:

Option Description
application.enddate This is the date your call for proposals would end on.
secure_ssl This should be enabled, if possible. Requires a valid SSL certificate.
database.* This is the database information you collected above.
mail.* This is SMTP configuration for sending mail. The application sends notifications on various system events.
### Run Migrations

This project uses Phinx to handle migrations. Be sure to copy the phinx.yml.dist file that is in the root directory for the project to phinx.yml and edit it to match your own database settings.

To run migrations, make sure you are in the root directory for the project and run the following:

$ vendor/bin/phinx migrate --environment=production

Note: For updating previously installed instances only run migrations as needed.

### Final Touches
  • The web server must be able to write to the /web/uploads directory in order to
  • You may need to alter the memory_limit of the web server to allow image processing of head-shots. This is largely dictated by the size of the images people upload. Typically 512M works.
  • Customize templates and /web/assets/css/site.css to your heart's content.
## Command-line Utilities

OpenCFP comes bundled with a few command-line utilities to administer the system. A full list of commands (along with help for each) can be found by running the following in the project root:

$ bin/opencfp
### Admin Group Management

Administrators are authorized to review speaker information in addition to specifying talk favorites and making selections.

Adding speaker@opencfp.org to the admin group:

$ bin/opencfp admin:promote --env=production speaker@opencfp.org

Removing speaker@opencfp.org from the admin group:

$ bin/opencfp admin:demote --env=production speaker@opencfp.org
### Clear Caches

OpenCFP uses Twig as a templating engine and HTML Purifier for input filtering. Both of these packages maintain a cache, if enabled. If you need to clear all application caches:

$ bin/opencfp cache:clear
## Testing

There is a test suite that uses PHPUnit in the /tests directory. The recommended way to run the tests is:

$ ./vendor/bin/phpunit -c tests/phpunit.xml
## Troubleshooting

I'm getting weird permissions-related errors to do with HTML Purifier.

You may need to edit directory permissions for some vendor packages such as HTML Purifier. Check the /cache directory's permissions first (if you have cache.enabled set to true).

About

Repo for OpenCFP project, a PHP-based conference talk submission system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 73.4%
  • HTML 22.3%
  • Gherkin 2.0%
  • CSS 1.7%
  • Other 0.6%