A unified platform to upload, manage, and review enterprise documents.
Document Center is a centralized platform designed for enterprises to manage diverse technical and production documents. It enables users to upload, edit, and audit files within an integrated and secure environment. It ensures that document publishing adheres to review and approval workflows, which is critical for industries with compliance or traceability requirements.
| Layer | Technology |
|---|---|
| Frontend | Vue 3, Vite, Axios |
| Backend | Flask, Flask-Login, SQLAlchemy |
| Database | MySQL 8 |
| Auth | Session-based login, Google OAuth |
| Monitoring | Prometheus, Grafana |
| CI/CD | GitHub Actions |
| Deployment | Docker, Docker Compose, Kubernetes |
- User registration and login with session support
- Password reset via email token
- Change password while logged in
- Role-based access: admin and non-admin users
- Upload, list, and download files (per-user scoped)
- File metadata tracking: filename, MIME type, path, upload time
- File size limit enforcement (default: 256 MB)
- Upload/download UI with dynamic links
- Password reset prompt
- Axios-based API integration
- Responsive layout with a simple navigation bar
- RESTful API using Flask and Flask-Login
- File upload handling with
werkzeug - Token-based password reset support
- MySQL integration using SQLAlchemy
- CORS support with credentials
- Runs in Docker with persistent volume for data
- Auto-initialized by the backend (
init_db.py) - Accessible on host port
3307(container port3306)
- Real-time metrics exposed via
/metricsendpoint (Flask + Prometheus) - Prometheus scrapes metrics and Grafana dashboard for visualizing:
- API usage statistics
- Upload/download activity
- System health (via Docker container stats)
- (Optional) To enable Google OAuth login, create a
.envfile in the./backenddirectory with the following content:
cd ./backend
cp .env.sample .env- Build and start the services:
- Docker:
docker-compose up --build- k8s:
cd k8s
./start_k8s.sh- Access the application:
- Docker: http://localhost:8080
- k8s: http://localhost
