Skip to content

BM-Internship-Project/Backend-Team

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Money Transfer Application

Overview

This is a Money Transfer Application that allows users to transfer money between accounts, view account balances, and manage favorite recipients. The application uses Java Spring Boot for the backend, with PostgreSQL as the database, and Redis for caching. It is containerized using Docker and deployed on Railway.

Table of Contents

Features

  • User Registration and Login: Users can sign up and log in securely using email and password.
  • Balance Inquiry: Users can check their account balance at any time.
  • Money Transfer: Users can transfer funds between accounts.
  • Favorite Recipients: Add and manage favorite recipients for quick and easy transfers.
  • Transactions: View transaction history.
  • Authentication: Secure login, token-based authentication, and logout functionality.
  • Rate Limiting: Uses the Token Bucket algorithm to limit the number of requests a user can make in a given period.
  • Caching: Improves performance by using Redis for caching frequently accessed data.
  • Security: Special attention to secure transactions and data handling, with token-based authentication and rate-limiting mechanisms in place.

Technologies Used

  • Java 17: The programming language used for the backend.
  • Spring Boot 3:
    • Spring Security 6 for authentication and authorization
    • Spring Web for building RESTful APIs
  • Maven: Build tool for compiling and packaging the application.
  • PostgreSQL: Relational database used to persist account and transaction data.
  • Redis: Caching layer used for improving performance.
  • JWT Token: For secure token-based authentication.
  • Token Bucket Algorithm: For rate-limiting requests to prevent abuse.
  • Postman: API documentation and testing.
  • Docker: For containerizing the application for easy deployment.
  • Railway: Platform used for deploying the application.

API Documentation

Installation and Setup

Prerequisites

Local Setup

  1. Clone the repository:

    git clone https://github.com/BM-Internship-Project/Backend-Team.git
  2. Navigate to the project directory:

    cd money-transfer-application
  3. Install dependencies:

    • Ensure you have Java and Maven installed. Then, run:
      mvn install
  4. Configure application properties:

    • Edit src/main/resources/application.properties to set up your database and other configuration settings.
  5. Run the application:

    mvn spring-boot:run

Deployment

The application is deployed on Railway.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors