This is a web-based personal finance management application built with Flask. It allows users to track their income and expenses, manage budgets, set savings goals, and get insights into their financial health.
- User authentication and authorization
- Account management (bank accounts, credit cards, etc.)
- Transaction tracking and categorization
- Budget creation and monitoring
- Savings goals
- Bill reminders
- Investment tracking
- Debt management
- Financial reports and analytics
- Integration with Plaid API for bank data synchronization
- Backend: Flask (Python)
- Database: PostgreSQL
- ORM: SQLAlchemy
- Task Queue: Celery with Redis
- API Documentation: Swagger/OpenAPI
- Containerization: Docker
- CI/CD: [Your CI/CD tool, e.g., GitHub Actions, GitLab CI, etc.]
- Docker and Docker Compose
- Python 3.9+
- Pipenv
-
Clone the repository:
git clone https://github.com/yourusername/personal-finance-app.git cd personal-finance-app
-
Create a
.env
file in the project root and add necessary environment variables: FLASK_APP=app.py FLASK_ENV=development DATABASE_URL=postgresql://user:password@db/dev_db SECRET_KEY=your_secret_key JWT_SECRET_KEY=your_jwt_secret_key PLAID_CLIENT_ID=your_plaid_client_id PLAID_SECRET=your_plaid_secret -
Build and run the Docker containers: docker-compose up --build
-
The application should now be running at
http://localhost:5000
-
Install dependencies: pipenv install --dev
-
Activate the virtual environment: pipenv shell
-
Run the Flask development server: flask run
-
Run tests: pytest
-
Format code: flask8
API documentation is available at http://localhost:5000/api/docs
when the application is running.
To create a new migration: flask db migrate -m "Description of the changes"
To apply migrations: flask db upgrade
[Add instructions for deploying your application to production]
- 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.md file for details.