EnvelopePal
Smart envelope budgeting that helps you save
Install / Use
/learn @Fimeg/EnvelopePalREADME
EnvelopePal 🦦
A smart envelope budgeting web application that helps you save money and reach your financial goals with style.
Features
- 🎯 Smart envelope budgeting system with goal tracking
- 💫 Interactive progress visualization
- 🏆 Achievement system to celebrate milestones
- 📊 Transaction history with editable entries
- 📥 Import/Export functionality for envelope data
- 🎨 Multiple theme options (Green, Blue, Purple, Orange)
- 🦦 Friendly weasel mascot with savings tips
- 📱 Responsive design for all devices
- 🗄️ SQLite database for persistent storage
- 🐳 Docker support for easy deployment
- 🚀 RESTful API for all operations
Getting Started
Using Docker (Recommended)
- Clone the repository:
git clone https://github.com/fimeg/envelopepal.git
cd envelopepal
- Build and start the containers:
docker-compose up --build
- Access the application:
- Frontend: http://localhost
- Backend API: http://localhost:5000/api
The application data will persist in the SQLite database located in the backend/instance directory.
Manual Setup (Development)
- Clone the repository:
git clone https://github.com/fimeg/envelopepal.git
cd envelopepal
- Set up the backend:
cd backend
python -m venv env
source env/bin/activate # On Windows: env\Scripts\activate
pip install -r requirements.txt
python run.py
- Set up the frontend:
# In a new terminal
python -m http.server 80 # Or use any static file server
- Access the application at http://localhost
Usage
Managing Envelopes
- Create envelopes with name and budget
- Add or subtract funds through transactions
- Track progress toward budget goals
- View transaction history
- Export envelope data to CSV
- Delete envelopes when no longer needed
CSV Export Format
The CSV export includes the following columns:
Date,Type,Description,Amount,Balance
MM/DD/YYYY,deposit/withdrawal,"Transaction Name",00.00,00.00
Architecture
Frontend
- Static HTML/CSS/JavaScript
- Communicates with backend via RESTful API
- Theme customization with persistent preferences
Backend
- Flask application with SQLite database
- RESTful API endpoints for all CRUD operations
- Models for Envelopes, Transactions, and Achievements
Docker Configuration
- Frontend container with Nginx serving static files
- Backend container with Flask and SQLite
- Docker Compose for orchestration
- Persistent volume for SQLite database
API Endpoints
Envelopes
- GET
/api/envelopes- List all envelopes - POST
/api/envelopes- Create new envelope - PUT
/api/envelopes/<id>- Update envelope - DELETE
/api/envelopes/<id>- Delete envelope
Transactions
- GET
/api/envelopes/<id>/transactions- List transactions for envelope - POST
/api/envelopes/<id>/transactions- Add transaction to envelope
Achievements
- GET
/api/achievements- List all achievements - PUT
/api/achievements/<id>- Update achievement
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Screenshot(s)
License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
Created by Casey Tunturi - Samaritan Solutions LLC
Support
For support, please open an issue in the GitHub repository.
Related Skills
node-connect
347.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
