PHPackages                             bridgeeighteen/exam - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. bridgeeighteen/exam

ActiveProject[Utility &amp; Helpers](/categories/utility)

bridgeeighteen/exam
===================

A simple entrance exam system for the Bridge Eighteen Community Forum.

1.0.1(9mo ago)24LGPL-3.0+PHP

Since Aug 14Pushed 9mo agoCompare

[ Source](https://github.com/bridgeeighteen/b18-exam)[ Packagist](https://packagist.org/packages/bridgeeighteen/exam)[ RSS](/packages/bridgeeighteen-exam/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (6)Versions (7)Used By (0)

 [ ![十八桥社区](views/assets/logo_text.svg) ](https://github.com/bridgeeighteen/b18-exam)### 论坛入站测试系统

[](#论坛入站测试系统)

 十八桥社区论坛使用的入站测试系统，基于 Bootstrap 和 PHP。

 [反馈 Bug](https://github.com/bridgeeighteen/b18-exam/issues) · [请求新功能](https://github.com/bridgeeighteen/b18-exam/issues)

 [![ Scrutinizer 分数](https://camo.githubusercontent.com/3ffc67dc90efd1bc39d2a756052391845f78daafbcbe220e46ea297e38cf96c1/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f627269646765656967687465656e2f6231382d6578616d2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d61696e)](https://camo.githubusercontent.com/3ffc67dc90efd1bc39d2a756052391845f78daafbcbe220e46ea297e38cf96c1/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f627269646765656967687465656e2f6231382d6578616d2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d61696e) [![贡献者总数](https://camo.githubusercontent.com/5160d96d1092a30347a5b81b6c45d88b72a78d693f1e7966e13fa5fe74273c21/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f627269646765656967687465656e2f6231382d6578616d2e737667)](https://camo.githubusercontent.com/5160d96d1092a30347a5b81b6c45d88b72a78d693f1e7966e13fa5fe74273c21/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f627269646765656967687465656e2f6231382d6578616d2e737667) [![Stars 总数](https://camo.githubusercontent.com/73fa0f9e755553923245ffc1c978cf720ed3b5def6b0abff3e3604a62573a89b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f627269646765656967687465656e2f6231382d6578616d2e737667)](https://camo.githubusercontent.com/73fa0f9e755553923245ffc1c978cf720ed3b5def6b0abff3e3604a62573a89b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f627269646765656967687465656e2f6231382d6578616d2e737667) [![Issues 总数](https://camo.githubusercontent.com/032e010c6698de9c70d91b0ff8f290d6696ffa0dd64121e315abf47f893b8944/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f627269646765656967687465656e2f6231382d6578616d2e737667)](https://camo.githubusercontent.com/032e010c6698de9c70d91b0ff8f290d6696ffa0dd64121e315abf47f893b8944/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f627269646765656967687465656e2f6231382d6578616d2e737667) [![Composer 版本](https://camo.githubusercontent.com/4f4bc7c832fb8a5c8763919a19202c0e02dc1cc703f1b14506a561cc0f952ad9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f627269646765656967687465656e2f6578616d)](https://camo.githubusercontent.com/4f4bc7c832fb8a5c8763919a19202c0e02dc1cc703f1b14506a561cc0f952ad9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f627269646765656967687465656e2f6578616d) [![许可证](https://camo.githubusercontent.com/12bada46db18c7de84d0ac811b44cdc1819b8c456943ea49e807370b50d92ae5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f627269646765656967687465656e2f6578616d)](https://camo.githubusercontent.com/12bada46db18c7de84d0ac811b44cdc1819b8c456943ea49e807370b50d92ae5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f627269646765656967687465656e2f6578616d)

 目录1. [关于本项目](#关于本项目)
    - [构建工具](#构建工具)
2. [开始](#开始)
    - [依赖](#依赖)
    - [正常安装](#正常安装（生产环境推荐）)
    - [使用 Git 克隆安装](#使用Git克隆安装)
3. [主要功能](#主要功能)
4. [贡献](#贡献)
5. [许可证](#许可证)
6. [联系我们](#联系我们)

关于本项目
-----

[](#关于本项目)

这是十八桥社区论坛的入站测试系统，用于让用户完成入站测试并根据成绩获得邀请码以在论坛注册。

([回到顶部](#top))

### 构建工具

[](#构建工具)

- [Composer](https://getcomposer.org)
- [Bootstrap 4.6](https://getbootstrap.com/docs/4.6/)
- [jQuery](https://jquery.com)

([回到顶部](#top))

开始
--

[](#开始)

要获取本地副本并且配置运行，你可以按照下面的示例步骤操作。

### 依赖

[](#依赖)

- Composer
- MySQL
- PHP
- Nginx / Apache
- 已经部署好的 Flarum
    - [FoF Doorman 插件](https://github.com/FriendsOfFlarum/doorman)
    - [OAuth Center 插件](https://github.com/FoskyM/flarum-oauth-center)

### 正常安装（生产环境推荐）

[](#正常安装生产环境推荐)

1. 在 [Cloudflare 仪表板](https://dash.cloudflare.com/)中获取 Turnstile 的密钥（测试用途不需要），然后去 Flarum 的个人主页获取 API 密钥。同时，你需要在 Flarum 中利用 OAuth Center 插件的管理面板创建一个新的应用，先复制（或记下）插件自动生成的 ID 和私钥，然后依需要填写其余内容。回调地址填 `https://你的部署网站/admin/oauth.php`。
2. 通过 Composer 创建新项目。这里的 `my-new-project` 可以根据实际需要更换。

    ```
    composer create-project bridgeeighteen/exam my-new-project
    ```
3. 在 `config-example.php` 中根据注释提示完成配置。如果只是用于测试，须保留模板中给定的 Turnstile 密钥。
4. 使用 phpMyAdmin 等导入 `table.sql` 中定义的数据表及结构。导入前先在该文件的 `SET time_zone = "+08:00";` 一行中按照通用表示修改时区，然后到第 3 步设置的配置文件中找到 `PHP_TIMEZONE` 变量，按照其后的注释以 PHP 支持的格式同步修改。管理者在中国大陆的无需改动，在中国港澳台地区的需要修改 PHP 时区为本地时区。有些托管平台设置了时区锁，无论怎么改时区 `SELECT @@global.time_zone, @@session.time_zone;` 的查询结果均为 `SYSTEM`。遇到这种情况，请将 `DB_TIMEZONE_LOCK` 变量设置为 `true`。
5. 在 `questions` 表中手工录入试题。在后续版本中，可以通过管理面板导入 Markdown 试题，由系统自动识别并录入。

### 使用 Git 克隆安装

[](#使用-git-克隆安装)

1. 在 [Cloudflare 仪表板](https://dash.cloudflare.com/)中获取 Turnstile 的密钥（测试用途不需要），然后去 Flarum 的个人主页获取 API 密钥。同时，你需要在 Flarum 中利用 OAuth Center 插件的管理面板创建一个新的应用，先复制（或记下）插件自动生成的 ID 和私钥，然后依需要填写其余内容。回调地址填 `https://你的部署网站/admin/oauth.php`。
2. 克隆本仓库。

    ```
    git clone https://github.com/bridgeeighteen/b18-exam.git
    ```
3. 安装 Composer 依赖包。

    ```
    composer install
    ```
4. 在 `config-example.php` 中根据注释提示完成配置。如果只是用于测试，须保留模板中给定的 Turnstile 密钥。
5. 使用 phpMyAdmin 等导入 `table.sql` 中定义的数据表及结构。导入前先在该文件的 `SET time_zone = "+08:00";` 一行中按照通用表示修改时区，然后到第 3 步设置的配置文件中找到 `PHP_TIMEZONE` 变量，按照其后的注释以 PHP 支持的格式同步修改。管理者在中国大陆的无需改动，在中国港澳台地区的需要修改 PHP 时区为本地时区。有些托管平台设置了时区锁，无论怎么改时区 `SELECT @@global.time_zone, @@session.time_zone;` 的查询结果均为 `SYSTEM`。遇到这种情况，请将 `DB_TIMEZONE_LOCK` 变量设置为 `true`。
6. 在 `questions` 表中手工录入试题。在后续版本中，可以通过管理面板导入 Markdown 试题，由系统自动识别并录入。

([回到顶部](#top))

主要功能
----

[](#主要功能)

- 支持单选/多选试题
- 支持多基类（分区）试题设置
- 时间作弊检测
- 自定义测试时长、过关分数阈值、每题全对分数和多选题漏选分数
- 完美支持 Flarum 内置 API 接口和 FoF Doorman 插件自带 API 接口
- 识别 Markdown 并自动录入试题

你也可以到 [Open Issues](https://github.com/bridgeeighteen/b18-exam/issues) 页查看所有请求的功能（以及已知的问题）。

([回到顶部](#top))

贡献
--

[](#贡献)

贡献让开源社区成为了一个非常适合学习、互相激励和创新的地方。你所做出的任何贡献都是**受人尊敬**的。

如果你有好的建议，请复刻（Fork）本仓库并且创建一个拉取请求（Pull Request）。你也可以简单地创建一个议题（Issue），并且添加标签「enhancement」。不要忘记给项目点一个 Star！再次感谢！

1. 复刻（Fork）本项目
2. 创建你的 Feature 分支 (`git checkout -b feature/AmazingFeature`)
3. 提交你的变更 (`git commit -m 'Add some amazing feature'`)
4. 推送到该分支 (`git push origin feature/AmazingFeature`)
5. 创建一个拉取请求（Pull Request）

([回到顶部](#top))

许可证
---

[](#许可证)

根据 LGPL-3.0-or-later 许可证分发。LGPL-3.0 的完整副本请见 [LICENSE](LICENSE)，GPL-3.0 的完整副本请见 [LICENSE.GPL-3.0](LICENSE.GPL-3.0)。

([回到顶部](#top))

联系我们
----

[](#联系我们)

管理团队邮箱：

IRC 频道：irc://irc.libera.chat/#bridgeeighteen

([回到顶部](#top))

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance57

Moderate activity, may be stable

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~70 days

Recently: every ~87 days

Total

6

Last Release

288d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1599bed205d6a233413d3e078f712026c3115ecd01026be1bee31e1189b16ad0?d=identicon)[bridgeeighteen](/maintainers/bridgeeighteen)

---

Top Contributors

[![Diamochang](https://avatars.githubusercontent.com/u/42176486?v=4)](https://github.com/Diamochang "Diamochang (63 commits)")

---

Tags

examphp

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/bridgeeighteen-exam/health.svg)

```
[![Health](https://phpackages.com/badges/bridgeeighteen-exam/health.svg)](https://phpackages.com/packages/bridgeeighteen-exam)
```

###  Alternatives

[serhioromano/bootstrap-calendar

Bootstrap full view calendar.

3.0k5.9k2](/packages/serhioromano-bootstrap-calendar)[afragen/git-updater

A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.

3.3k1.6k](/packages/afragen-git-updater)[mapbender/mapbender

Mapbender library

10117.4k5](/packages/mapbender-mapbender)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
