An open API service indexing awesome lists of open source software.

https://github.com/feightwywx/homework-mis

(more than a) homework management information system / (不仅是一个)作业管理信息系统
https://github.com/feightwywx/homework-mis

admin-dashboard docker information-system mysql nextjs react

Last synced: 2 months ago
JSON representation

(more than a) homework management information system / (不仅是一个)作业管理信息系统

Awesome Lists containing this project

README

          

# homework-mis

一个基于[Next.js](https://nextjs.org)的作业管理信息系统。

[Demo链接](https://mis.drwf.ink)

[备用链接(Vercel)](https://homework-mis-tog4.vercel.app)

||用户名|密码|
|--|--|--|
|学生端|student|123456|
|教师端|teacher|123456|

## 功能

### 学生端

#### 课程管理

- 查看相关课程,及课程下的作业与考试
- 统计课程成绩

#### 作业管理

- 查看被下发的作业列表,以及单项作业详情
- 提交作业
- 查看作业批阅情况、得分和评语

#### 考试管理

- 查看考试列表与详细信息
- 查询分数

### 教师端

#### 课程管理

- 查看相关课程,及课程下的作业与考试
- 统计课程成绩

#### 作业管理

- 查看自己下发的所有作业,以及单项作业内容
- 查看作业完成情况
- 查看某个学生的作业完成内容,批阅作业
- 打回作业

#### 考试管理

- 查看考试列表与详细信息
- 发布考试
- 提交分数

## Get Started

#### 1. 安装依赖
```commandline
npm i
```

#### 2. 数据库准备
本项目使用一个名为`homework_mis`的MySQL 8.0数据库。

在调试之前,需要手动创建该数据库,并运行`sql/homework_mis.sql`来初始化表结构。

Jest测试同样调用这个数据库,但是可以通过`.env.test`指定不同的MySQL实例。

#### 3. 环境变量

本项目通过环境变量存储参数。你需要在项目根目录下创建一个`.env.local`文件,启动服务时Next.js会自动从中载入环境变量。`.env.local`的结构如下:

```ini
SECRET_COOKIE_PASSWORD=
MYSQL_HOST=
MYSQL_USER=
MYSQL_PORT= # 默认3306
MYSQL_PASSWORD=
```

#### 4. 开始调试
```commandline
npm run dev
```

## 通过Docker部署

本项目提供了`linux/amd64`和`linux/amd64`的[Docker镜像](https://hub.docker.com/r/dotdirewolf/hwmis-docker)。

以下命令将会拉取镜像,启动一个名为的`hwmis`的容器,并将容器内`3000`端口映射到随机端口。记得替换成你自己的环境变量。

```commandline
docker pull dotdirewolf/hwmis-docker
docker run -itdP --name hwmis \
-e SECRET_COOKIE_PASSWORD= \
-e MYSQL_HOST= \
-e MYSQL_USER= \
-e MYSQL_PORT= \
-e MYSQL_PASSWORD= \
dotdirewolf/hwmis-docker
```