iPlacard 是 Kaijia Feng 于 2013 年起为 IMUNC 开发的模拟联合国会议管理系统。
iPlacard 的设计目标是适配所有常规类型会议的自动化管理系统,功能包括管理完整的申请流程,包括代表、面试、席位、文件、缴费、委员会、代表团,以及附带的数据导出、API、统计及个人帐户管理功能。同时提供了一个供与会代表访问界面,可显示申请进度、席位、文件、代表团、委员会信息。
iPlacard 同时按照早前会议的需求扩展有与其他系统对接的能力,包括利用 FreeRADIUS 实现会场 WIFI 网络登录(首次于 IMUNC 2013 中使用);利用 iDocument 系统分发文件(首次于 IMUNC 2015 中使用);利用 jsConnect 等模式实现 Single Sign-On 等(首次于 IMUNC 2015 中使用)。iPlacard 数据库经扩展亦可作为会期期间利用 NFC 或二维码签到、领餐、打卡等功能的数据后端(首次于 IMUNC 2016 中使用)。
iPlacard 公开于 2013 年 4 月 1 日。iPlacard 1.0 于 IMUNC 2013 中首次使用,随后进行了重写,并于 IMUNC 2014 开始使用 2.0 版本。iPlacard 于 2.3 版本起于 2017 年 8 月 3 日,在有约束条件下公开软件源代码于 GitHub。
iPlacard 是采用双重许可证授权模式的专有软件。
任何与会人数小于或等于 150 人的非商业且不以营利为目的的会议可以在第三版 GNU 通用公共许可协议(GNU General Public License v3.0)约束且保留合适署名条件下使用、复制、修改、分发 iPlacard。任何商业或以营利为目的的会议需要联系版权所有人(fengkaijia@gmail.com)取得商业授权。详细的许可信息请见版权声明及附加协议。
测试用 Demo 提供于 https://sandbox.kaijia.me/iplacard/。
后台(组织团队帐号)登录用户名 admin@iplacard.com
,密码 iplacardadmin
。
前台(代表报名帐号)登录用户名 demo@iplacard.com
,密码 iplacarduser
,亦可由简易报名表提交报名登录。
使用 iPlacard 需要系统管理员具有一定的网站维护知识,建议使用 phpMyAdmin 等软件方便维护。
iPlacard 标准实例可以运行在标准的 LAMP 环境中,最低需求如下:
- PHP 7.0(包含
php-curl
、php-gd
、php-mbstring
、php-memcached
、php-mysql
、php-xml
、php-zip
扩展) - MySQL 5.7
- Nginx 1.0 / Apache 2.2(包含
mod_rewrite
) - Memcached
- Cron
- CURL
可通过两种方法获取源代码。
git clone https://github.com/fengkaijia/iplacard.git
cd iplacard
git checkout release/2.3
wget https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer -O - -q | php -- --quiet
php composer.phar install
访问 https://github.com/fengkaijia/iplacard/releases 下载包含所有代码的源文件并解压缩到文件目录。请注意通过此方法下载的代码无法自动升级,如条件允许请使用前种方法。
复制 iPlacard 根目录下的 config.example.php
文件到 config.php
。根据提示修改数据库连接等配置信息。
将 resource/install.sql
文件导入数据库。导入前需将 install.sql
文件中的 {IP_PREFIX}
更换为在 config.php
中设定的数据库前缀(默认配置将 {IP_PREFIX}
替换为 ip_
)。在 Linux 下可运行:
sed -e 's/{IP_PREFIX}/ip_/g' resource/install.sql | mysql -u user -p database
在数据库中运行 SQL 语句:
INSERT INTO `{IP_PREFIX}user` (`name`, `email`, `password`, `phone`, `type`, `pin_password`, `reg_time`) VALUES (
'姓名',
'example@iplacard.com',
'$2a$12$85882f010234860c69b20unGCh76I/fvE.eL5QBdhG7Dfk7BSYah6',
'13800000000',
'admin',
'iPlacard',
UNIX_TIMESTAMP(CURRENT_TIMESTAMP)
);
INSERT INTO `{IP_PREFIX}admin` (`id`, `role_reviewer`, `role_dais`, `role_interviewer`, `role_cashier`, `role_administrator`, `role_bureaucrat`) VALUES (1, 1, 1, 1, 1, 1, 1);
其中,替换姓名、邮箱和手机号三项必要信息。将 {IP_PREFIX}
更换为在 config.php
中设定的数据库前缀。
iPlacard 总共有两百余项设置项,可设置申请流程、账单、席位模式、界面等等行为。这些设置项在数据库的 option
表中可被修改。详细的设置项名称及其控制的功能请参见 resource/install.sql
。
Cron 脚本用于处理发送短信、面试提醒、删除代表帐户等任务。增加以下 Cron 任务:
* * * * * php /path/to/iplacard/index.php cron minutely >> /path/to/iplacard/data/0/log/minutely.log 2>&1
@hourly php /path/to/iplacard/index.php cron hourly >> /path/to/iplacard/data/0/log/hourly.log 2>&1
@daily php /path/to/iplacard/index.php cron daily >> /path/to/iplacard/data/0/log/daily.log 2>&1
@weekly php /path/to/iplacard/index.php cron weekly >> /path/to/iplacard/data/0/log/weekly.log 2>&1
替换其中的 /path/to/iplacard/
为 iPlacard 的安装目录。
访问 iPlacard 网页,使用上述创建管理用户步骤中设置的邮箱登录,登录密码为 iplacardadmin
,登录后请修改密码。
resource/sample.sql
文件包含有示例数据,导入示例数据可快速开始使用 iPlacard。导入前需将 sample.sql
文件中的 {IP_PREFIX}
更换为在 config.php
中设定的数据库前缀。在 Linux 下可运行:
sed -e 's/{IP_PREFIX}/ip_/g' resource/sample.sql | mysql -u user -p database
将 resource/htaccess
复制到 iPlacard 根目录下并重命名为 .htaccess
可隐藏网址中的 index.php/
部分并防止恶意获取文件。
参照 resource/nginx
修改 Nginx 的配置文件可隐藏网址中的 index.php/
部分并防止恶意获取文件。
iPlacard 每次请求均会从数据库的 option
表中载入全部配置项,删除采用默认设置的配置项(即导入数据表后未修改过的配置项)可以提高网页打开速度。
修订更新指大版本不变的更新,例如由 2.3.0 更新至 2.3.1。修订更新不包含新功能和数据库变动,仅需通过 Git 更新代码。
cd iplacard
git pull
php composer.phar update