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.
✨ 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.
- 💰 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.
- 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.
- Clone the repository:
git clone https://github.com/yourusername/budgetbuddy.git- Install dependencies:
cd budgetbuddy
npm install- Configure environment variables:
Create a
.envfile in the project root with the following settings:
NODE_ENV=development
DATABASE_URL="./db/app.db"
For testing, you can create a .env.test file with:
NODE_ENV=test
DATABASE_URL="./db/test.db"
- Start the server:
npm run dev- Access the application: Open your browser and go to
http://localhost:3000.
src/: Source code directorydb/: Database filestests/: Test files.env: Environment configurationpackage.json: Project dependencies and scripts
POST /transactions: Create a new transactionGET /transactions: List all transactionsGET /transactions/:id: Retrieve a specific transactionGET /summary: Get account summary
The application uses comprehensive error handling to provide meaningful feedback:
- Validation errors
- Authentication errors
- Database connection errors
- Efficient database queries using Knex.js
- Minimal overhead with Fastify
- Lightweight SQLite database
- Implement transaction categories
- Add data visualization
- Create mobile application
- Integrate with bank APIs
Contributions are always welcome! If you want to help improve BudgetBuddy, feel free to open an issue or send a pull request.
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! 💸