Add README files for root, backend, and frontend

This commit is contained in:
caadiq 2025-12-16 08:22:15 +09:00
parent c1da47f057
commit 930d6c3d7f
3 changed files with 215 additions and 0 deletions

92
README.md Normal file
View file

@ -0,0 +1,92 @@
# 📧 Mailbox
셀프 호스팅 이메일 클라이언트 애플리케이션입니다.
![React](https://img.shields.io/badge/React-18-61DAFB?logo=react)
![Node.js](https://img.shields.io/badge/Node.js-Express-339933?logo=node.js)
![Docker](https://img.shields.io/badge/Docker-2496ED?logo=docker)
---
## ✨ 주요 기능
- 📬 **이메일 송수신** - SMTP/IMAP 프로토콜 지원
- 🤖 **AI 번역** - Google Gemini API 연동
- 📎 **첨부파일** - S3 호환 스토리지 업로드
- 🔍 **고급 검색** - 다양한 필터 옵션
- 🛡️ **스팸 필터** - Rspamd 연동
- 👥 **다중 사용자** - 관리자 대시보드
---
## 📁 프로젝트 구조
```
mailbox/
├── frontend/ # React + Vite 프론트엔드
├── backend/ # Node.js + Express 백엔드
├── rspamd/ # 스팸 필터 설정
└── docker-compose.yml # Docker Compose 설정
```
---
## 🛠️ 기술 스택
### Frontend
| 기술 | 설명 |
| --------------- | -------------- |
| **React 18** | UI 라이브러리 |
| **Vite** | 빌드 도구 |
| **TailwindCSS** | CSS 프레임워크 |
### Backend
| 기술 | 설명 |
| -------------- | ------------- |
| **Node.js** | 런타임 환경 |
| **Express** | 웹 프레임워크 |
| **MariaDB** | 데이터베이스 |
| **Nodemailer** | 이메일 전송 |
| **IMAP** | 이메일 수신 |
### 인프라
| 기술 | 설명 |
| ---------- | ----------- |
| **Rspamd** | 스팸 필터링 |
| **Redis** | 캐시 서버 |
| **RustFS** | S3 스토리지 |
---
## 🚀 실행 방법
### Docker (권장)
```bash
docker compose up -d --build
```
### 개발 모드
```bash
# 백엔드
cd backend && npm install && npm start
# 프론트엔드
cd frontend && npm install && npm run dev
```
---
## 🌐 접속
- **URL**: https://mailbox.caadiq.co.kr
---
## 📄 라이선스
MIT License

63
backend/README.md Normal file
View file

@ -0,0 +1,63 @@
# 🖥️ Mailbox - Backend
이메일 송수신 및 관리를 위한 Node.js API 서버입니다.
![Node.js](https://img.shields.io/badge/Node.js-18+-339933?logo=node.js)
![Express](https://img.shields.io/badge/Express-4.x-000000?logo=express)
---
## 🛠️ 기술 스택
| 기술 | 설명 |
| -------------- | ------------- |
| **Node.js** | 런타임 환경 |
| **Express** | 웹 프레임워크 |
| **Sequelize** | ORM |
| **Nodemailer** | SMTP 전송 |
| **IMAP** | 이메일 수신 |
| **JWT** | 인증 |
---
## 📡 API 엔드포인트
### 인증
- `POST /api/auth/login` - 로그인
- `POST /api/auth/logout` - 로그아웃
### 이메일
- `GET /api/emails` - 이메일 목록
- `GET /api/emails/:id` - 이메일 상세
- `POST /api/emails/send` - 이메일 전송
- `DELETE /api/emails/:id` - 이메일 삭제
### 관리자
- `GET /api/admin/users` - 사용자 관리
- `GET /api/admin/dashboard` - 대시보드 통계
---
## 🚀 실행 방법
```bash
npm install
npm start
```
서버는 **포트 3000**에서 실행됩니다.
---
## ⚙️ 환경 변수
| 변수 | 설명 |
| ------------- | --------------------- |
| `DB_HOST` | 데이터베이스 호스트 |
| `DB_USER` | 데이터베이스 사용자 |
| `DB_PASSWORD` | 데이터베이스 비밀번호 |
| `DB_NAME` | 데이터베이스 이름 |
| `JWT_SECRET` | JWT 시크릿 키 |

60
frontend/README.md Normal file
View file

@ -0,0 +1,60 @@
# 🎨 Mailbox - Frontend
이메일 클라이언트의 웹 인터페이스입니다.
![React](https://img.shields.io/badge/React-18-61DAFB?logo=react)
![Vite](https://img.shields.io/badge/Vite-5-646CFF?logo=vite)
![TailwindCSS](https://img.shields.io/badge/TailwindCSS-3-06B6D4?logo=tailwindcss)
---
## 🛠️ 기술 스택
| 기술 | 설명 |
| ---------------- | -------------- |
| **React 18** | UI 라이브러리 |
| **Vite** | 빌드 도구 |
| **TailwindCSS** | CSS 프레임워크 |
| **Lucide React** | 아이콘 |
---
## ✨ 주요 기능
- 📬 **메일 목록** - 받은편지함, 보낸편지함, 스팸함
- ✏️ **메일 작성** - 리치 텍스트 에디터
- 📎 **첨부파일** - 드래그 앤 드롭 업로드
- 🔍 **검색** - 고급 필터 옵션
- 🤖 **AI 번역** - Gemini API 연동
- 👨‍💼 **관리자** - 사용자 및 시스템 관리
---
## 🚀 실행 방법
### 개발 모드
```bash
npm install
npm run dev
```
### 프로덕션 빌드
```bash
npm run build
```
---
## 📁 구조
```
frontend/
├── src/
│ ├── components/ # UI 컴포넌트
│ ├── context/ # React Context
│ ├── hooks/ # 커스텀 훅
│ └── utils/ # 유틸리티 함수
└── public/ # 정적 파일
```