{"id":28452405,"url":"https://github.com/amarjahiji/simplebanking","last_synced_at":"2026-05-03T17:33:04.280Z","repository":{"id":296624833,"uuid":"905184727","full_name":"amarjahiji/simpleBanking","owner":"amarjahiji","description":"simpleBanking is a university project for my Java course and my first Spring Boot project. It provides a backend system for managing customers, accounts, cards, and transactions with secure authentication and RESTful APIs, utilizing technologies like Spring Security, Spring Data JPA, Hibernate, MySQL, and Bcrypt.","archived":false,"fork":false,"pushed_at":"2025-06-01T00:02:22.000Z","size":136,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-02T04:37:47.111Z","etag":null,"topics":["banking-applications","hibernate","java","mvc","mysql","restful-api","spring","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amarjahiji.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-18T10:25:14.000Z","updated_at":"2025-06-01T00:02:25.000Z","dependencies_parsed_at":"2025-06-01T10:53:29.955Z","dependency_job_id":"34ec6357-edb4-4626-b421-096d852f5bef","html_url":"https://github.com/amarjahiji/simpleBanking","commit_stats":null,"previous_names":["amarjahiji/simplebanking"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amarjahiji/simpleBanking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amarjahiji%2FsimpleBanking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amarjahiji%2FsimpleBanking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amarjahiji%2FsimpleBanking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amarjahiji%2FsimpleBanking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amarjahiji","download_url":"https://codeload.github.com/amarjahiji/simpleBanking/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amarjahiji%2FsimpleBanking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32578592,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["banking-applications","hibernate","java","mvc","mysql","restful-api","spring","spring-boot"],"created_at":"2025-06-06T17:41:46.698Z","updated_at":"2026-05-03T17:33:04.263Z","avatar_url":"https://github.com/amarjahiji.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SimpleBanking\n\nA **Spring Boot** backend application providing REST APIs for a comprehensive banking system dashboard. This system efficiently manages customers, accounts, cards, and transactions through a secure and scalable architecture.\n\n---\n\n## 🚀 Features\n\n- **Customer Management**: CRUD operations for customers.\n- **Account Operations**: Manage accounts seamlessly.\n- **Card Management**: Support for various card types.\n- **Transaction Tracking**: Monitor and analyze transactions.\n- **Secure Authentication**: Basic authentication.\n- **RESTful API Endpoints**: Clean and efficient API design.\n\n---\n\n## 🛠️ Technologies\n\n- **Java**  17\n- **Spring Boot**  3.4.1\n- **J-Unit**  5\n- **MySQL**  5\n\n\n- **Spring Security** - For access control.\n- **Spring Data JPA** - For database interactions.\n- **Hibernate**       - For ORM persistence.\n- **Bcrypt**          - For secure password handling.\n- **HikariCP**        - For connection pooling.\n- **Maven**           - For building and dependency management.\n\n---\n\n## 🗂️ Database Schema\n\nThe application uses five main entities:\n\n1. **Customer**\n2. **Account**\n3. **Card**\n4. **CardType**\n5. **Transaction**\n\n---\n\n## 📡 API Endpoints\n\n### **Customer Endpoints:**\n- **GET** `/customers` - Retrieve all customers.\n- **GET** `/customers/young` - Retrieve all customers younger than 25.\n- **GET** `/customers/old` - Retrieve all customers older than 64.\n- **GET** `/customers/{id}` - Retrieve a specific customer by ID.\n- **GET** `/customers/accounts` - Retrieve all customers and their accounts.\n- **GET** `/customers/accounts/{id}` - Retrieve a specific customer by ID and their associated accounts.\n- **GET** `/customers/accounts/cards` - Retrieve all customers and their accounts and cards associated to their accounts.\n- **GET** `/customers/accounts/cards/{id}` - Retrieve a specific customer by ID and their associated accounts and cards associated to their accounts.\n- **POST** `/customers/create` - Create a new customer.\n- **PUT** `/customers/{id}` - Update customer details.\n- **PATCH** `/customers/update/address{id}` - Update customer address.\n- **PATCH** `/customers/update/email/{id}` - Update customer email.\n- **PATCH** `/customers/update/password/{id}` - Update customer password.\n- **DELETE** `/customers/delete/{id}` - Delete a customer.\n\n### **Account Endpoints:**\n- **GET** `/accounts` - Retrieve all accounts.\n- **GET** `/accounts/{id}` - Retrieve a specific account by ID.\n- **GET** `/accounts/cards` - Retrieve all accounts and their cards.\n- **GET** `/accounts/cards/{id}` - Retrieve a specific account by ID and their associated cards.\n- **GET** `/accounts/transactions` - Retrieve all accounts and their transactions.\n- **GET** `/accounts/transactions/{id}` - Retrieve a specific account by ID and their associated transactions.\n- **POST** `/accounts` - Create a new account.\n- **PUT** `/accounts/{id}` - Update account details.\n- **PATCH** `/accounts/balance/{id}` - Update account current balance.\n- **PATCH** `/accounts/status/{id}` - Update account status.\n- **PATCH** `/accounts/date-closed/{id}` - Update account date closed.\n- **DELETE** `/accounts/{id}` - Delete an account.\n\n\u003e Similar endpoints exist for **Card**, **CardType**, and **Transaction** entities.\n\n---\n\n## 🔒 Security\n\n- **Basic Authentication**: Secure Authentication.\n- **Secure Password Handling**: Passwords hashed with **Bcrypt**.\n- **Protected Endpoints**: Ensures only authorized access.\n\n---\n\n## ⚙️ Setup and Installation\n\n### 1. Clone the Repository\n```bash\ngit clone [https://github.com/amarjahiji/simpleBanking]\n```\n\n### 2. Configure Database Properties\nEdit the application.properties file:\n```bash\nspring.datasource.url=jdbc:mysql://localhost:3306/db_name\nspring.datasource.username=your_username\nspring.datasource.password=your_password\n```\n\n### 3. Build the project\n```bash\nmvn clean install\n```\n\n### 3. Run the application\n```bash\nmvn spring-boot:run\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famarjahiji%2Fsimplebanking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famarjahiji%2Fsimplebanking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famarjahiji%2Fsimplebanking/lists"}