The Model United Nations Conference Management System by IMUNC since 2013
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
application
resource 修复数据库全文查询索引错误 Sep 22, 2017
static
LICENSE.txt
README.md 增加优化项和更新提示 Oct 17, 2017
composer.json
config.example.php 删除空格 Aug 2, 2017
index.php

README.md

iPlacard

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-curlphp-gdphp-mbstringphp-mcryptphp-memcachedphp-mysqlphp-xmlphp-zip 扩展)
  • MySQL 5.7(停用 only_full_group_by
  • Nginx 1.0 / Apache 2.2(包含 mod_rewrite
  • Memcached
  • Cron
  • CURL

获取源代码

可通过两种方法获取源代码。

1、使用 Git 和 Composer

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

2、下载预编译的文件

访问 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 脚本用于处理发送短信、面试提醒、删除代表帐户等任务。增加以下 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,登录后请修改密码。

可选操作

1、导入示例数据

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

2、配置 Apache

resource/htaccess 复制到 iPlacard 根目录下并重命名为 .htaccess 可隐藏网址中的 index.php/ 部分并防止恶意获取文件。

3、配置 Nginx

参照 resource/nginx 修改 Nginx 的配置文件可隐藏网址中的 index.php/ 部分并防止恶意获取文件。

4、删除多余配置项

iPlacard 每次请求均会从数据库的 option 表中载入全部配置项,删除采用默认设置的配置项(即导入数据表后未修改过的配置项)可以提高网页打开速度。

更新

修订更新

修订更新指大版本不变的更新,例如由 2.3.0 更新至 2.3.1。修订更新不包含新功能和数据库变动,仅需通过 Git 更新代码。

cd iplacard
git pull
php composer.phar update