FundFlow is a Spring Boot REST API designed to help users manage their personal finances, including budget tracking, bank account management, and secure user authentication.
- User Authentication: Registration and login with JWT-based security (Spring Security).
- Budget Management: Full CRUD operations for budgets.
- Bank Account Management: Add and track multiple bank accounts.
- Robust Security: JWT authentication and best practices using Spring Security.
- Data Persistence: Reliable storage via JPA/Hibernate.
- Java 17+
- Spring Boot 3.x
- Spring Security
- Spring Data JPA
- Maven
- Docker (optional)
src/
├── main/
│ ├── java/com/finbot/Beta/
│ │ ├── BetaApplication.java
│ │ ├── config/
│ │ ├── controller/
│ │ ├── Dto/
│ │ ├── entity/
│ │ ├── Exceptions/
│ │ ├── repository/
│ │ ├── service/
│ │ └── util/
│ └── resources/
│ ├── application.properties
│ ├── static/
│ └── templates/
└── test/
└── java/com/finbot/Beta/
- Java 17+
- Maven
- MySQL / PostgreSQL / H2 Database
-
Clone the repository
git clone https://github.com/GodXSpell/Beta.git cd Beta -
Configure the database
Edit
src/main/resources/application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/finbot_db spring.datasource.username=your_username spring.datasource.password=your_password spring.jpa.hibernate.ddl-auto=update
-
Build and run the application
mvn clean install mvn spring-boot:run
The API will be available at: http://localhost:8080
To run the application with Docker:
docker build -t beta-finbot .
docker run -p 8080:8081 beta-finbotAuthentication
POST /api/auth/signup— Register a new userPOST /api/auth/login— User login
Budget
GET /api/budgets— List budgetsPOST /api/budgets— Create a new budgetPUT /api/budgets/{id}— Update a budgetDELETE /api/budgets/{id}— Delete a budget
Bank Accounts
GET /api/accounts— List bank accountsPOST /api/accounts— Add a new bank account
Run all tests:
mvn test- Ensure service implementations are in
com.finbot.Beta.service.impl - Confirm
@Serviceand@Componentannotations are present - Verify your database credentials and that the database server is running
- Check application logs for errors
This project is licensed under the MIT License.
GodXSpell