一个基于 Beancount 和 Nuxt.js 构建的现代化的个人记账系统
1.7K
A modern personal accounting system built on Beancount and Fava, featuring powerful backend services and a mobile-friendly frontend interface to help users easily manage their personal finances.
MoneyMint is an open-source personal financial management system designed to provide an intuitive interface and robust accounting features. The system adopts a decoupled architecture with a Python/Flask backend using Beancount as the core accounting engine, and a modern frontend built with Nuxt.js and Vue 3.
MoneyMint/
├── backend/ # Python backend services
│ ├── app/ # Application code
│ │ ├── main.py # Main application entry
│ │ └── __init__.py # Package initialization file
│ ├── data/ # Ledger data directory
│ │ └── main.bean # Default ledger file
│ ├── config/ # Configuration files directory
│ └── requirements.txt # Python dependencies
├── frontend/ # Nuxt frontend project
│ ├── assets/ # Static assets
│ ├── components/ # Vue components
│ ├── composables/ # Composable functions
│ │ └── useApi.ts # API call encapsulation
│ ├── pages/ # Page components
│ │ ├── index.vue # Homepage/Dashboard
│ │ ├── accounts.vue # Account management
│ │ ├── entries.vue # Transaction records
│ │ └── login.vue # Login page
│ ├── plugins/ # Nuxt plugins
│ ├── public/ # Public resources
│ ├── nuxt.config.ts # Nuxt configuration
│ ├── package.json # Node.js dependencies
│ └── tailwind.config.js # Tailwind CSS configuration
├── Dockerfile # Docker build file
├── docker-compose.yml # Docker Compose configuration
├── README.md # English documentation
└── README-zh.md # Chinese documentation
# Enter backend directory
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows
env\Scripts\activate
# Linux/macOS
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run backend service
python app/main.py
The backend service will start at http://localhost:5000.
# Enter frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm run dev
The frontend development server will start at http://localhost:3000.
Quickly deploy the entire application using Docker Compose:
# Build and start containers
docker-compose up -d
# Check container status
docker-compose ps
The application will be available at http://localhost:3000.
Backend can be configured via environment variables or .env file:
| Configuration | Description | Default Value |
|---|---|---|
LEDGER_FILE | Ledger file path | data/main.bean |
JWT_SECRET_KEY | JWT secret key | your-secret-key-change-this-in-production |
ADMIN_USERNAME | Admin username | admin |
ADMIN_PASSWORD | Admin password | admin123 |
ENABLE_REGISTRATION | Whether to enable registration | true |
PAD_EQUITY_ACCOUNT | Equity account | Equity:Opening-Balances |
Frontend configuration file is located at frontend/nuxt.config.ts, main configuration items:
| Configuration | Description | Default Value |
|---|---|---|
apiBaseUrl | Backend API address | http://localhost:5000/api |
app.port | Frontend service port | 3000 |
adminadmin123Contributions of all kinds are welcome! Whether you're reporting bugs, suggesting new features, or submitting code directly, your support is greatly appreciated.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)This project is licensed under the MIT License - see the LICENSE file for details.
Thanks to all the developers and users who have contributed to the MoneyMint project!
If you find MoneyMint helpful, please give us a ⭐ Star to support our work!
Content type
Image
Digest
sha256:1131c0123…
Size
120.8 MB
Last updated
6 months ago
docker pull quewen08/money-mint