{"id":13658609,"url":"https://github.com/fengkaijia/iplacard","last_synced_at":"2025-04-24T11:32:13.359Z","repository":{"id":153193125,"uuid":"97218438","full_name":"fengkaijia/iplacard","owner":"fengkaijia","description":"The Model United Nations Conference Management System by IMUNC since 2013","archived":false,"fork":false,"pushed_at":"2019-08-03T10:38:44.000Z","size":6175,"stargazers_count":31,"open_issues_count":1,"forks_count":9,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-11-10T12:42:27.548Z","etag":null,"topics":["model-united-nations","mun"],"latest_commit_sha":null,"homepage":"http://iplacard.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fengkaijia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-07-14T09:42:15.000Z","updated_at":"2024-03-19T23:01:02.000Z","dependencies_parsed_at":"2024-01-22T03:52:41.485Z","dependency_job_id":"5d4ceb5d-2d9d-46df-8fb3-7ab3f27410d3","html_url":"https://github.com/fengkaijia/iplacard","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengkaijia%2Fiplacard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengkaijia%2Fiplacard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengkaijia%2Fiplacard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengkaijia%2Fiplacard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fengkaijia","download_url":"https://codeload.github.com/fengkaijia/iplacard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250618447,"owners_count":21460096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["model-united-nations","mun"],"created_at":"2024-08-02T05:01:01.107Z","updated_at":"2025-04-24T11:32:12.681Z","avatar_url":"https://github.com/fengkaijia.png","language":"PHP","funding_links":[],"categories":["PHP (11)","Development Tools"],"sub_categories":[],"readme":"# iPlacard\n\niPlacard 是 [Kaijia Feng](http://kaijia.me/) 于 2013 年起为 [IMUNC](http://imunc.com/) 开发的模拟联合国会议管理系统。\n\niPlacard 的设计目标是适配所有常规类型会议的自动化管理系统，功能包括管理完整的申请流程，包括代表、面试、席位、文件、缴费、委员会、代表团，以及附带的数据导出、API、统计及个人帐户管理功能。同时提供了一个供与会代表访问界面，可显示申请进度、席位、文件、代表团、委员会信息。\n\niPlacard 同时按照早前会议的需求扩展有与其他系统对接的能力，包括利用 FreeRADIUS 实现会场 WIFI 网络登录（首次于 IMUNC 2013 中使用）；利用 iDocument 系统分发文件（首次于 IMUNC 2015 中使用）；利用 jsConnect 等模式实现 Single Sign-On 等（首次于 IMUNC 2015 中使用）。iPlacard 数据库经扩展亦可作为会期期间利用 NFC 或二维码签到、领餐、打卡等功能的数据后端（首次于 IMUNC 2016 中使用）。\n\niPlacard [公开](http://imunc.com/2013/04/announcing-iplacard/)于 2013 年 4 月 1 日。iPlacard 1.0 于 IMUNC 2013 中首次使用，随后进行了重写，并于 IMUNC 2014 开始使用 2.0 版本。iPlacard 于 2.3 版本起于 2017 年 8 月 3 日，在有约束条件下公开软件源代码于 [GitHub](https://github.com/fengkaijia/iplacard)。\n\n## 许可证信息\n\niPlacard 是采用双重许可证授权模式的专有软件。\n\n任何与会人数小于或等于 150 人的非商业且不以营利为目的的会议可以在[第三版 GNU 通用公共许可协议](https://www.gnu.org/licenses/gpl-3.0.en.html)（GNU General Public License v3.0）约束且保留合适署名条件下使用、复制、修改、分发 iPlacard。任何商业或以营利为目的的会议需要联系版权所有人（[fengkaijia@gmail.com](mailto:fengkaijia@gmail.com)）取得商业授权。详细的许可信息请见[版权声明及附加协议](LICENSE.txt)。\n\n## 示例\n\n测试用 Demo 提供于 \u003chttps://sandbox.kaijia.me/iplacard/\u003e。\n\n后台（组织团队帐号）登录用户名 `admin@iplacard.com`，密码 `iplacardadmin`。\n\n前台（代表报名帐号）登录用户名 `demo@iplacard.com`，密码 `iplacarduser`，亦可由简易报名表提交报名登录。\n\n## 安装\n\n使用 iPlacard 需要系统管理员具有一定的网站维护知识，建议使用 phpMyAdmin 等软件方便维护。\n\n### 运行环境\n\niPlacard 标准实例可以运行在标准的 LAMP 环境中，最低需求如下：\n\n* PHP 7.0（包含 `php-curl`、`php-gd`、`php-mbstring`、`php-memcached`、`php-mysql`、`php-xml`、`php-zip` 扩展）\n* MySQL 5.7\n* Nginx 1.0 / Apache 2.2（包含 `mod_rewrite`）\n* Memcached\n* Cron\n* CURL\n\n### 获取源代码\n\n可通过两种方法获取源代码。\n\n#### 1、使用 Git 和 Composer\n\n```bash\ngit clone https://github.com/fengkaijia/iplacard.git\ncd iplacard\ngit checkout release/2.3\nwget https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer -O - -q | php -- --quiet\nphp composer.phar install\n```\n\n#### 2、下载预编译的文件\n\n访问 \u003chttps://github.com/fengkaijia/iplacard/releases\u003e 下载包含所有代码的源文件并解压缩到文件目录。请注意通过此方法下载的代码无法自动升级，如条件允许请使用前种方法。\n\n### 创建配置文件\n\n复制 iPlacard 根目录下的 [`config.example.php`](config.example.php) 文件到 `config.php`。根据提示修改数据库连接等配置信息。\n\n### 导入数据库\n\n将 [`resource/install.sql`](resource/install.sql) 文件导入数据库。导入前需将 `install.sql` 文件中的 `{IP_PREFIX}` 更换为在 `config.php` 中设定的数据库前缀（默认配置将 `{IP_PREFIX}` 替换为 `ip_`）。在 Linux 下可运行：\n\n```bash\nsed -e 's/{IP_PREFIX}/ip_/g' resource/install.sql | mysql -u user -p database\n```\n\n### 创建管理用户\n\n在数据库中运行 SQL 语句：\n\n```mysql\nINSERT INTO `{IP_PREFIX}user` (`name`, `email`, `password`, `phone`, `type`, `pin_password`, `reg_time`) VALUES (\n  '姓名', \n  'example@iplacard.com', \n  '$2a$12$85882f010234860c69b20unGCh76I/fvE.eL5QBdhG7Dfk7BSYah6', \n  '13800000000', \n  'admin', \n  'iPlacard', \n  UNIX_TIMESTAMP(CURRENT_TIMESTAMP)\n);\n\nINSERT 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);\n```\n\n其中，替换姓名、邮箱和手机号三项必要信息。将 `{IP_PREFIX}` 更换为在 `config.php` 中设定的数据库前缀。\n\n### 更改系统设置\n\niPlacard 总共有两百余项设置项，可设置申请流程、账单、席位模式、界面等等行为。这些设置项在数据库的 `option` 表中可被修改。详细的设置项名称及其控制的功能请参见 [`resource/install.sql`](resource/install.sql)。\n\n### 设置 Cron\n\nCron 脚本用于处理发送短信、面试提醒、删除代表帐户等任务。增加以下 Cron 任务：\n\n```\n* * * * * php /path/to/iplacard/index.php cron minutely \u003e\u003e /path/to/iplacard/data/0/log/minutely.log 2\u003e\u00261\n@hourly php /path/to/iplacard/index.php cron hourly \u003e\u003e /path/to/iplacard/data/0/log/hourly.log 2\u003e\u00261\n@daily php /path/to/iplacard/index.php cron daily \u003e\u003e /path/to/iplacard/data/0/log/daily.log 2\u003e\u00261\n@weekly php /path/to/iplacard/index.php cron weekly \u003e\u003e /path/to/iplacard/data/0/log/weekly.log 2\u003e\u00261\n```\n\n替换其中的 `/path/to/iplacard/` 为 iPlacard 的安装目录。\n\n### 开始使用\n\n访问 iPlacard 网页，使用上述创建管理用户步骤中设置的邮箱登录，登录密码为 `iplacardadmin`，登录后请修改密码。\n\n### 可选操作\n\n#### 1、导入示例数据\n\n[`resource/sample.sql`](resource/sample.sql) 文件包含有示例数据，导入示例数据可快速开始使用 iPlacard。导入前需将 `sample.sql` 文件中的 `{IP_PREFIX}` 更换为在 `config.php` 中设定的数据库前缀。在 Linux 下可运行：\n\n```bash\nsed -e 's/{IP_PREFIX}/ip_/g' resource/sample.sql | mysql -u user -p database\n```\n\n#### 2、配置 Apache\n\n将 [`resource/htaccess`](resource/htaccess) 复制到 iPlacard 根目录下并重命名为 `.htaccess` 可隐藏网址中的 `index.php/` 部分并防止恶意获取文件。\n\n#### 3、配置 Nginx\n\n参照 [`resource/nginx`](resource/nginx) 修改 Nginx 的配置文件可隐藏网址中的 `index.php/` 部分并防止恶意获取文件。\n\n#### 4、删除多余配置项\n\niPlacard 每次请求均会从数据库的 `option` 表中载入全部配置项，删除采用默认设置的配置项（即导入数据表后未修改过的配置项）可以提高网页打开速度。\n\n## 更新\n\n### 修订更新\n\n修订更新指大版本不变的更新，例如由 2.3.0 更新至 2.3.1。修订更新不包含新功能和数据库变动，仅需通过 Git 更新代码。\n\n```bash\ncd iplacard\ngit pull\nphp composer.phar update\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffengkaijia%2Fiplacard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffengkaijia%2Fiplacard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffengkaijia%2Fiplacard/lists"}