{"id":30304800,"url":"https://github.com/ynstf/digital-banking","last_synced_at":"2025-08-17T07:33:39.131Z","repository":{"id":291651628,"uuid":"978325177","full_name":"ynstf/Digital-Banking","owner":"ynstf","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-18T19:16:06.000Z","size":248,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-18T20:24:15.738Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/ynstf.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":"2025-05-05T20:10:51.000Z","updated_at":"2025-05-18T19:16:09.000Z","dependencies_parsed_at":"2025-05-05T21:27:33.463Z","dependency_job_id":"759dd83f-5593-4877-ae30-efac95052594","html_url":"https://github.com/ynstf/Digital-Banking","commit_stats":null,"previous_names":["ynstf/digital-banking"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ynstf/Digital-Banking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynstf%2FDigital-Banking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynstf%2FDigital-Banking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynstf%2FDigital-Banking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynstf%2FDigital-Banking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ynstf","download_url":"https://codeload.github.com/ynstf/Digital-Banking/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynstf%2FDigital-Banking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270820676,"owners_count":24651515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-08-17T07:33:38.605Z","updated_at":"2025-08-17T07:33:39.118Z","avatar_url":"https://github.com/ynstf.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Digital-Banking\n\n## E-Banking Application Backend\n\nThis repository contains the **Spring Boot Banking Management System** backend, featuring JWT-based authentication, RESTful APIs for managing customers, accounts, and operations, as well as Swagger/OpenAPI documentation.\n\n## Table of Contents\n\n1. [Project Overview](#project-overview)\n2. [Technology Stack](#technology-stack)\n3. [Prerequisites](#prerequisites)\n4. [Installation](#installation)\n5. [Configuration](#configuration)\n6. [Running the Application](#running-the-application)\n7. [API Endpoints](#api-endpoints)\n\n   * Authentication\n   * Customers\n   * Accounts\n   * Operations\n   * Dashboard\n8. [Security](#security)\n9. [Swagger Documentation](#swagger-documentation)\n10. [Project Structure](#project-structure)\n11. [License](#license)\n\n---\n\n## Project Overview\n\nThe Banking Management Backend provides a robust API for managing bank customers, accounts (current and savings), and account operations (credit, debit, transfer). It includes analytics endpoints for dashboard insights and is secured with JWT-based authentication.\n\n## Technology Stack\n\n* **Language**: Java 17\n* **Framework**: Spring Boot 3\n* **Security**: Spring Security, JWT (HS512)\n* **Persistence**: Spring Data JPA, H2/MySQL\n* **Documentation**: springdoc-openapi 2.1.0 (Swagger UI)\n* **Build Tool**: Maven\n\n## Prerequisites\n\n* JDK 17+\n* Maven 3.6+\n* (Optional) MySQL database\n\n## Installation\n\n1. **Clone the repository**:\n\n   ```bash\n   git clone https://github.com/your-org/banking-backend.git\n   cd banking-backend\n   ```\n2. **Build the project**:\n\n   ```bash\n   mvn clean install\n   ```\n\n## Configuration\n\nUpdate `src/main/resources/application.properties` with your database and JWT settings:\n\n```properties\nspring.application.name=eBanking\nserver.port=8080\nspring.datasource.url=jdbc:mysql://localhost:3306/E-BANK?createDatabaseIfNotExist=true\nspring.datasource.username=root\nspring.datasource.password=\nspring.jpa.hibernate.ddl-auto = create\nspring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MariaDBDialect\nspring.jpa.show-sql=true\nsecurity.jwt.expiration=1800\nsecurity.jwt.secretKey = \u003c9faa372517acd1389758d3750fc07acf00f542277f26feec1ce4593e93f64e338\u003e\n```\n\n## Running the Application\n\n```bash\nmvn spring-boot:run\n```\n\nThe API will be accessible at `http://localhost:8080/`.\n\n## API Endpoints\n\n### Authentication\n\n![image](https://github.com/user-attachments/assets/ec641b16-180b-4eca-9a76-194508ea4bf3)\n\n\n* **POST** `/auth/login`\n  **Request**: `{ \"username\": \"admin\", \"password\": \"admin123\" }`\n  **Response**: `{ \"jwt\": \"\u003ctoken\u003e\", \"type\": \"Bearer\", \"username\": \"admin\", \"roles\": [\"ROLE_ADMIN\"] }`\n\n* **GET** `/auth/profile` (Requires Bearer token)\n  *Returns* authenticated user details.\n\n### Customers\n\n![image](https://github.com/user-attachments/assets/2cb846ed-6bce-405d-a0ac-7891dbc6fb68)\n\n* **GET** `/customers` (ROLE\\_USER)\n* **GET** `/customers/{id}` (ROLE\\_USER)\n* **GET** `/customers/search?kw={keyword}` (ROLE\\_USER)\n* **POST** `/customers` (ROLE\\_ADMIN)\n\n  ```json\n  { \"name\": \"Alice\", \"email\": \"alice@example.com\" }\n  ```\n* **PUT** `/customers/{id}` (ROLE\\_ADMIN)\n* **DELETE** `/customers/{id}` (ROLE\\_ADMIN)\n\n### Accounts\n\n![image](https://github.com/user-attachments/assets/d0aabc06-9b23-4c2c-86df-ad3a7f4b7c06)\n\n\n\n* **GET** `/accounts` (ROLE\\_USER)\n* **GET** `/accounts/{id}` (ROLE\\_USER)\n* **POST** `/accounts/current` (ROLE\\_ADMIN)\n\n  ```json\n  { \"customerId\": 1, \"initialBalance\": 5000, \"overDraft\": 1000 }\n  ```\n* **POST** `/accounts/saving` (ROLE\\_ADMIN)\n\n  ```json\n  { \"customerId\": 1, \"initialBalance\": 3000, \"interestRate\": 3.5 }\n  ```\n\n### Operations\n\n![image](https://github.com/user-attachments/assets/d2349790-80eb-4526-8ba8-16a49bba7da8)\n\n* **POST** `/accounts/credit` (ROLE\\_ADMIN)\n\n  ```json\n  { \"accountId\": \"\u003cuuid\u003e\", \"amount\": 200, \"description\": \"Salary\" }\n  ```\n* **POST** `/accounts/debit` (ROLE\\_ADMIN)\n\n  ```json\n  { \"accountId\": \"\u003cuuid\u003e\", \"amount\": 50, \"description\": \"Grocery\" }\n  ```\n* **POST** `/accounts/transfer` (ROLE\\_ADMIN)\n\n  ```json\n  { \"sourceAccountId\": \"\u003cuuid1\u003e\", \"destAccountId\": \"\u003cuuid2\u003e\", \"amount\": 100 }\n  ```\n* **GET** `/accounts/{id}/operations` (ROLE\\_USER)\n* **GET** `/accounts/{id}/operations?page={p}\u0026size={s}` (ROLE\\_USER)\n\n### Dashboard\n\n![image](https://github.com/user-attachments/assets/ac9041a7-20d8-48cb-81d1-0766e561e745)\n\n\n* **GET** `/dashboard/summary` (ROLE\\_ADMIN)\n  *Returns* counts, balances, trends, and top customers.\n\n## Security\n\n![image](https://github.com/user-attachments/assets/3d005f4a-a649-4a8c-aeeb-5e0c01dad58b)\n\n\n* **JWT Authentication**: Include `Authorization: Bearer \u003ctoken\u003e` in requests.\n\n* **Roles**:\n\n  * `ROLE_USER`: Read-only operations\n  * `ROLE_ADMIN`: Full access\n\n* **In-Memory Users** (for demo):\n\n  ```properties\n  user1 / password1 -\u003e ROLE_USER\n  admin / admin123 -\u003e ROLE_ADMIN\n  ```\n\n## Swagger Documentation\n\nSwagger UI is available at:\n\n```\nhttp://localhost:8080/swagger-ui.html\n```\n\n![image](https://github.com/user-attachments/assets/14e42d70-2a81-463d-a300-d7f365f26882)\n\n\nIt includes security integration: click \"Authorize\" and paste your Bearer JWT.\n\n\n## Project Structure\n\n```\n├── src\n│   ├── main\n│   │   ├── java\n│   │   │   └── com.example.bank\n│   │   │       ├── config      # Swagger \u0026 Security configuration\n│   │   │       ├── controllers # REST APIs\n│   │   │       ├── dtos        # Data Transfer Objects\n│   │   │       ├── entities    # JPA entities\n│   │   │       ├── exceptions  # Custom exceptions\n│   │   │       ├── repositories# Spring Data JPA repos\n│   │   │       ├── services    # Business logic\n│   │   │       └── utils       # Mappers \u0026 utilities\n│   └── resources\n│       └── application.yml\n└── pom.xml\n```\n\n\n*******************************************************\n\n## E-Banking Application Frontend\n\nThis repository contains the **Angular Banking Management System** frontend, featuring role-based access control, interactive UI, and integration with the Spring Boot backend.\n\n## Table of Contents\n\n1. [Project Overview](#project-overview)\n2. [Technology Stack](#technology-stack)\n3. [Prerequisites](#prerequisites)\n4. [Installation](#installation)\n5. [Configuration](#configuration)\n6. [Running the Application](#running-the-application)\n7. [Project Structure](#project-structure)\n8. [Pages \u0026 Components](#pages--components)\n\n   * Authentication \u0026 Guards\n   * Admin Dashboard\n   * Customer Management\n   * Account Operations\n   * User Management\n   * Profile \u0026 Settings\n9. [Navigation Bar](#navigation-bar)\n10. [Charting \u0026 Dashboard](#charting--dashboard)\n11. [Styling \u0026 Theming](#styling--theming)\n12. [License](#license-frontend)\n\n---\n\n## Project Overview\n\nThe frontend is an **Angular 16** application providing a cyberpunk-themed UI for managing banking operations. It interacts with the backend via REST APIs and secures routes with JWT authentication and role guards.\n\n## Technology Stack\n\n* **Framework**: Angular\n* **Language**: TypeScript\n* **UI**: Bootstrap 5 + custom cyberpunk CSS\n* **Charts**: ng2-charts (Chart.js)\n* **Routing**: Angular Router with Auth \u0026 Role Guards\n* **State**: Services + RxJS\n\n## Prerequisites\n\n* Node.js 18+\n* npm 8+\n* Angular CLI 16+\n\n## Installation\n\n```bash\ngit clone https://github.com/your-org/banking-frontend.git\ncd banking-frontend\nnpm install\n```\n\n## Configuration\n\nEdit `src/environments/environment.ts`:\n\n```ts\nexport const environment = {\n  production: false,\n  apiUrl: 'http://localhost:8085'\n};\n```\n\n## Running the Application\n\n```bash\nng serve\n```\n\nThe app runs at `http://localhost:4200/`.\n\n## Project Structure\n\n```\nsrc/\n├── app/\n│   ├── login/\n│   ├── navbar/\n│   ├── dashboard/\n│   ├── customers/\n│   ├── customer-accounts/\n│   ├── edit-customers/\n│   ├── new-customers/\n│   ├── accounts/\n│   ├── users/\n│   ├── user-list/\n│   ├── pages/\n│   ├── settings/\n│   ├── services/\n│   ├── guards/\n│   └── app-routing.module.ts\n│   └── ....\n├── assets/\n└── environments/\n```\n\n## Pages \u0026 Components\n\nEach component folder should include three files (.ts, .html, .css) and a placeholder for screenshots:\n\n* **LoginComponent**\n\n![image](https://github.com/user-attachments/assets/a9c03f0a-32c9-4768-a90f-59e6d69b2c4a)\n\n* **DashboardComponent**\n\n![image](https://github.com/user-attachments/assets/b7ee0496-7f50-4a6c-be16-a30082355a85)\n\n* **CustomersComponent**\n\n ![image](https://github.com/user-attachments/assets/b0c7c63c-5df2-4443-9331-2e10da19c8e2)\n\n* **NewCustomerComponent**\n\n ![image](https://github.com/user-attachments/assets/0638ea45-f529-4745-a948-8e00ed5ebc35)\n\n* **EditCustomerComponent**\n\n![image](https://github.com/user-attachments/assets/a2a71792-6108-44a8-9c56-cfc4dbb9a35f)\n\n\n* **CustomerAccountsComponent**\n\n![image](https://github.com/user-attachments/assets/c782c7af-f00c-43ee-9e7a-1b4426380c9f)\n\n* **AccountsComponent**\n\n![image](https://github.com/user-attachments/assets/9657b55d-b9ee-4e07-bc09-b5721f22258f)\n\n* **CreateCurrentAccountComponent**\n\n![image](https://github.com/user-attachments/assets/42c6ff6d-94f9-4866-9b7e-4dbe466dc2ad)\n\n  \n* **CreateSavingAccountComponent**\n\n![image](https://github.com/user-attachments/assets/e6ed2f8e-022b-4762-97de-87b763b0776a)\n\n* **UserListComponent**\n\n![image](https://github.com/user-attachments/assets/06d17e41-c6a8-45a9-b635-6eb86b67d8eb)\n\n* **NewUserComponent**\n\n![image](https://github.com/user-attachments/assets/e7520461-e31d-4972-b349-0ea0d88c6ae5)\n\n* **SettingsComponent**\n\n![image](https://github.com/user-attachments/assets/32cc4986-a59a-4113-b44f-77f270891ffd)\n\n\n## Navigation Bar\n\nThe `navbar.component.html` implements the following menu items:\n\n```html\n\u003cnav class=\"navbar ...\"\u003e\n  \u003c!-- Dashboard --\u003e(ADMIN)\n  \u003c!-- Accounts Dropdown --\u003e(ADMIN)\n  \u003c!-- Customers Dropdown --\u003e(ADMIN,USER)\n  \u003c!-- Operations Link --\u003e(ADMIN,USER)\n  \u003c!-- Users Link --\u003e (ADMIN)\n  \u003c!-- Profile Dropdown --\u003e(ADMIN,USER)\n\u003c/nav\u003e\n```\n\nAdmin dashboard uses **ng2-charts**. Key charts:\n\n1. **Accounts by Type \u0026 Average Balance by Account Type**\n\n   ![image](https://github.com/user-attachments/assets/abc82312-6f1f-4646-b68b-357dccc4604d)\n\n2. **Account Creations Over Time**\n\n   ![image](https://github.com/user-attachments/assets/b447b163-2d8b-4551-b475-e13deb677874)\n\n3. **Transactions by Day of Week**\n\n   ![image](https://github.com/user-attachments/assets/dfce22ac-98e1-4b52-a97d-c4b49280d122)\n\n5. **Top 5 Customers by Balance**\n\n   ![image](https://github.com/user-attachments/assets/28d82a2f-223d-4492-bca3-37ab2db577e9)\n\n6. **Recent Operations Feed**\n\n   ![image](https://github.com/user-attachments/assets/3ab74c99-48e7-4e1f-bfb9-b1b405e7c5a6)\n\n\nRefer to Chart.js examples in `dashboard.component.ts` and HTML.\n\n## Styling \u0026 Theming\n\nCustom CSS in `styles.css` and component-level `.css` files:\n\n* Variables for neon colors and gradients\n* Keyframe animations for glow and pulse\n* 3D transforms on buttons and cards\n* Glassmorphism effects with backdrop-filter\n\n![image](https://github.com/user-attachments/assets/4f7b66d6-7e53-4f26-ae34-e4f289b0e166)\n\n\n# Conclusion\n\nThis comprehensive banking management project brings together a robust Backend (Spring Boot, JPA, JWT, Swagger) and a modern Frontend (Angular, Bootstrap, ChartJS) to deliver a full end-to-end solution that enables:\n\n* Centralized management of customers, accounts (current \u0026 savings), and financial transactions.\n* Strong security through Spring Security and JWT, with fine-grained role-based access control.\n* Smooth user experience via a responsive, cyberpunk-themed UI, 3D animations, and an interactive dashboard.\n* Actionable insights powered by key metrics (account creation trends, transaction volumes, top customers, average balances).\n* Extensibility through a modular architecture, making it easy to add future features (notifications, report exports, multi-currency support).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fynstf%2Fdigital-banking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fynstf%2Fdigital-banking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fynstf%2Fdigital-banking/lists"}