https://github.com/rafaumeu/budgetbuddy
BudgetBuddy - A personal transaction manager that helps users track their finances simply and effectively. ✨ Main Features: Transaction Creation (credits and debits) Account Summary for informed financial decisions Transaction Listing and Specific Transaction View Technologies Used: Node.js Fastify SQL
https://github.com/rafaumeu/budgetbuddy
budgeting fast finance nodejs personal sqlite3
Last synced: 7 months ago
JSON representation
BudgetBuddy - A personal transaction manager that helps users track their finances simply and effectively. ✨ Main Features: Transaction Creation (credits and debits) Account Summary for informed financial decisions Transaction Listing and Specific Transaction View Technologies Used: Node.js Fastify SQL
- Host: GitHub
- URL: https://github.com/rafaumeu/budgetbuddy
- Owner: rafaumeu
- Created: 2024-11-14T08:10:24.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-11-20T15:11:39.000Z (11 months ago)
- Last Synced: 2025-01-26T19:16:56.679Z (9 months ago)
- Topics: budgeting, fast, finance, nodejs, personal, sqlite3
- Language: TypeScript
- Homepage:
- Size: 221 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# BudgetBuddy
         
Welcome to **BudgetBuddy**, your personal transaction manager! With BudgetBuddy, you can easily track your finances, record your transactions, and get an overview of your account in the blink of an eye. Whether you're a casual user or a financial planner, BudgetBuddy is designed to meet your needs.
## Features
✨ **Key Features:**
- **Transaction Creation:** Easily record new transactions, whether credit or debit.
- **Account Summary:** Get a clear and concise summary of your account, helping you make informed financial decisions.
- **Transaction Listing:** View all transactions you've made, organized conveniently.
- **Single Transaction View:** See the details of a specific transaction whenever you need.## Business Requirements
- 💰 **Transaction Types:** Transactions can be credit (which add to the total) or debit (which subtract from the total).
- 👤 **User Identification:** The system ensures that each user can only view their own transactions, maintaining privacy and security.
- 🔍 **Full Control:** You have total control over your transactions, able to view only those you've created.## Technologies Used
- **Node.js**: For backend construction.
- **Fastify**: A highly efficient web framework for Node.js.
- **Knex**: A SQL query builder that facilitates database interaction.
- **SQLite3**: A lightweight and reliable database to store your transactions.
- **Zod**: For data validation, ensuring your inputs are always safe and consistent.## Getting Started
1. **Clone the repository:**
```bash
git clone https://github.com/yourusername/budgetbuddy.git
```2. **Install dependencies:**
```bash
cd budgetbuddy
npm install
```3. **Configure environment variables:**
Create a `.env` file in the project root with the following settings:
```plaintext
NODE_ENV=development
DATABASE_URL="./db/app.db"
```
For testing, you can create a `.env.test` file with:
```plaintext
NODE_ENV=test
DATABASE_URL="./db/test.db"
```4. **Start the server:**
```bash
npm run dev
```5. **Access the application:** Open your browser and go to `http://localhost:3000`.
## Project Structure
- `src/`: Source code directory
- `db/`: Database files
- `tests/`: Test files
- `.env`: Environment configuration
- `package.json`: Project dependencies and scripts## API Endpoints
- `POST /transactions`: Create a new transaction
- `GET /transactions`: List all transactions
- `GET /transactions/:id`: Retrieve a specific transaction
- `GET /summary`: Get account summary## Error Handling
The application uses comprehensive error handling to provide meaningful feedback:
- Validation errors
- Authentication errors
- Database connection errors## Performance Considerations
- Efficient database queries using Knex.js
- Minimal overhead with Fastify
- Lightweight SQLite database## Future Roadmap
- [ ] Implement transaction categories
- [ ] Add data visualization
- [ ] Create mobile application
- [ ] Integrate with bank APIs## Contributions
Contributions are always welcome! If you want to help improve BudgetBuddy, feel free to open an issue or send a pull request.## License
This project is licensed under the ISC License - see the **LICENSE** file for more details.Feel free to explore, test, and most importantly, manage your finances effectively with BudgetBuddy! 💸