A smart envelope budgeting web application that helps you save money and reach your financial goals with style.
- 🎯 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
- 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.
- 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
- 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
The CSV export includes the following columns:
Date,Type,Description,Amount,Balance
MM/DD/YYYY,deposit/withdrawal,"Transaction Name",00.00,00.00
- Static HTML/CSS/JavaScript
- Communicates with backend via RESTful API
- Theme customization with persistent preferences
- Flask application with SQLite database
- RESTful API endpoints for all CRUD operations
- Models for Envelopes, Transactions, and Achievements
- Frontend container with Nginx serving static files
- Backend container with Flask and SQLite
- Docker Compose for orchestration
- Persistent volume for SQLite database
- GET
/api/envelopes
- List all envelopes - POST
/api/envelopes
- Create new envelope - PUT
/api/envelopes/<id>
- Update envelope - DELETE
/api/envelopes/<id>
- Delete envelope
- GET
/api/envelopes/<id>/transactions
- List transactions for envelope - POST
/api/envelopes/<id>/transactions
- Add transaction to envelope
- GET
/api/achievements
- List all achievements - PUT
/api/achievements/<id>
- Update achievement
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
Created by Casey Tunturi - Samaritan Solutions LLC
For support, please open an issue in the GitHub repository.