The Personal Finance App is a web-based application designed to help users manage their personal finances efficiently. Users can create, update, and delete transactions for specific accounts, and the app automatically updates the account balance accordingly. The application also supports recurring transactions and provides a clear view of account details.
- Java 22: The programming language used for developing the backend services.
- Spring Boot 3.3.1: Framework used for building the backend REST API.
- Spring Data JPA: For data persistence and ORM.
- PostgreSQL: The relational database management system used to store the data.
- React 18.3.1: JavaScript library for building user interfaces.
- React Bootstrap 2.10.4: For responsive UI components.
- Axios 1.7.2: For making HTTP requests to the backend API.
- React Router DOM 6.24.1: For routing within the React application.
Before running the application, ensure you have the following installed on your machine:
- Java 22: Download Java
- Node.js and npm: Download Node.js
- PostgreSQL: Download PostgreSQL
-
Clone the Repository
git clone https://github.com/2406-Ryan-Java-FS/Group-1.git cd projec1-backend
-
Configure Database
- Create a PostgreSQL database and update the application.properties file with your database credentials.
spring.datasource.url=jdbc:postgresql://localhost:5432/your-database spring.datasource.username=your-username spring.datasource.password=your-password spring.jpa.hibernate.ddl-auto=update
-
Build and Run
mvn clean install mvn spring-boot:run
-
Navigate to the Frontend Directory
cd project1-frontend
-
Install Dependencies
npm install
-
Run the Application
npm start
-The frontend application should now be running on http://localhost:3000
- GET /transactions: Retrieve all transactions.
- POST /transactions/{accountId}: Add a new transaction to an account.
- PUT /transactions/{id}: Update an existing transaction.
- DELETE /transactions/{id}: Delete a transaction.
- GET /transactions/account/{accountId}: Retrieve transactions by account ID.
- GET /transactions/user/{userId}: Retrieve transactions by user ID.
- GET /transactions/date/{date}: Retrieve transactions by date.
- GET /transactions/recurring: Retrieve recurring transactions.
- GET /transactions/type/{transactionType}: Retrieve transactions by type.
- POST /transactions/transfer: Transfer funds between accounts.
This is just some of the endpoints available.
- All requests and responses are in JSON format.
-
Backend
- Ensure your PostgreSQL server is running and accessible.
- Keep the application.properties file updated with the correct database credentials.
- Use the mvn spring-boot:run command to run the backend server in development mode.
-
Frontend
- Ensure the backend server is running before starting the frontend.
- Use npm start to run the frontend application in development mode.