stackpilotkulsum/Materix
GitHub: stackpilotkulsum/Materix
Materix 是一个安全的全栈文档管理 Web 应用,解决了用户在安全环境中存储和管理重要文件的需求。
Stars: 1 | Forks: 0
# Materix
Materix 是一个安全的材料/文档管理 Web 应用。它允许用户创建账户、登录、上传学习或招聘材料、组织单个文件和文件夹、查看上传历史记录、搜索存储的文档,并在需要时下载或删除文件。
## 项目理念
Materix 的理念是提供一个简单且安全的地方来上传和管理重要的材料文件。该应用专注于安全的文档处理,通过验证上传、阻止不受支持或可疑的文件、使用 UUID 匿名化存储的文件名,并将上传元数据与原始文件名分开保存。
它可用于管理 PDF、DOCX 文件、TXT 文档、简历、学习笔记、作业或图片附件。
## 工具和技术
### 前端
- React
- Vite
- React Router DOM
- Axios
- Lucide React 图标
- Supabase JavaScript 客户端
- 自定义高级样式(HSL 定制、深色叠加层)
### 后端
- Node.js
- Express.js
- 用于文件上传的 Multer
- 用于认证的 JWT
- 用于密码哈希的 bcryptjs
- CORS
- dotenv
- 用于 ZIP 处理的 adm-zip
- 用于 PDF 文本提取的 pdf-parse
## 安装与设置
### 前置条件
在运行项目之前,请安装以下内容:
- Node.js
- npm
- Git
### 1. 克隆仓库
```
git clone https://github.com/stackpilotkulsum/Materix.git
cd Materix
```
### 2. 安装后端依赖
```
cd server
npm install
```
### 3. 安装前端依赖
打开一个新终端:
```
cd client
npm install
```
## 环境变量
在 `server/` 目录下创建一个 `.env` 文件:
```
PORT=5000
SUPABASE_URL=https://uhtdwatcfiqzrzcpzmf.supabase.co
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_KEY=your_supabase_service_role_key
FRONTEND_URL=http://localhost:5173
SESSION_SECRET=your_jwt_session_secret
```
在 `client/` 目录下创建一个 `.env` 文件:
```
VITE_API_URL=http://localhost:5000
VITE_SUPABASE_URL=https://uhtdwatcfiqzrzcpzmf.supabase.co
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_AUTH_REDIRECT_URL=http://localhost:5173
```
## 本地运行项目
### 启动后端
从 `server/` 文件夹:
```
npm start
```
后端运行于:`http://localhost:5000`
### 启动前端
从 `client/` 文件夹:
```
npm run dev
```
前端运行于:`http://localhost:5173`
## API 路由
| 方法 | 路由 | 描述 |
| --- | --- | --- |
| `GET` | `/` | 后端健康状态消息 |
| `POST` | `/api/auth/register` | 注册新用户 |
| `POST` | `/api/auth/login` | 使用用户名和密码登录 |
| `POST` | `/api/auth/supabase-login` | 将 Supabase 会话交换为应用 JWT |
| `POST` | `/api/auth/google-login` | 使用 Google 凭据登录 |
| `POST` | `/api/auth/google-register` | 使用 Google 凭据注册 |
| `POST` | `/api/upload` | 上传受保护的学习/材料文件 |
| `GET` | `/api/files` | 获取已认证用户的已上传文件 |
| `DELETE` | `/api/files/:id` | 删除一个已上传的文件 |
## 作者
Materix 由 Kulsum Malik 开发。
GitHub 仓库:
标签:adm-zip, bcryptjs, CORS, dotenv, Express.js, GNU通用公共许可证, Google OAuth, JWT, Lucide React, MITM代理, Multer, Node.js, pdf-parse, PDF文本提取, PostgreSQL, React, Supabase, Syscalls, Vite, Web文件存储, ZIP处理, 上传历史, 下载管理, 云存储管理, 删除管理, 响应式UI, 在线文件管理器, 安全Web应用, 安全文件上传, 安全文档管理, 拖放上传, 搜索功能, 文件上传, 文件管理, 文件组织, 文件验证, 文档管理, 用户认证, 自定义脚本