{"id":27887515,"url":"https://github.com/aburraq/re-bank","last_synced_at":"2025-05-05T08:06:57.273Z","repository":{"id":288932673,"uuid":"969590731","full_name":"Aburraq/re-bank","owner":"Aburraq","description":"Re-Bank - The Real Bank, application written with java spring and nextjs allowing users to manage their accounts, transactions, assets, and notifications.","archived":false,"fork":false,"pushed_at":"2025-04-20T14:11:09.000Z","size":1296,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-05T08:06:43.882Z","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/Aburraq.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-04-20T13:57:24.000Z","updated_at":"2025-04-20T14:11:12.000Z","dependencies_parsed_at":"2025-04-20T15:36:16.599Z","dependency_job_id":null,"html_url":"https://github.com/Aburraq/re-bank","commit_stats":null,"previous_names":["aburraq/re-bank"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aburraq%2Fre-bank","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aburraq%2Fre-bank/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aburraq%2Fre-bank/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aburraq%2Fre-bank/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aburraq","download_url":"https://codeload.github.com/Aburraq/re-bank/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252463423,"owners_count":21751763,"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","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-05-05T08:06:56.609Z","updated_at":"2025-05-05T08:06:57.262Z","avatar_url":"https://github.com/Aburraq.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Re-Bank - Fake Real Bank\n\nA full‑stack banking application using Java Spring Boot microservices for the backend and a Next.js (TypeScript + React) frontend.\n\n## Architecture\n\nThe system follows these architectural patterns:\n\n- **Service Discovery** (Spring Cloud Netflix Eureka)\n- **Centralized Configuration** (Spring Cloud Config)\n- **Distributed Tracing** (Zipkin)\n- **Event-Driven Architecture** (Apache Kafka)\n- **Database per Microservice** (MongoDB, PostgreSQL, MySQL)\n- **Cache-Aside Pattern** (Redis, Spring Cache)\n- **Circuit Breaker Pattern** (Resilience4j)\n- **API Gateway** (Spring Cloud Gateway)\n- **Security** (JWT, OAuth2)\n- **Containerization** (Docker)\n\n## Modules\n\n```text\nbackend/\n├── config-server/\n├── discovery-server/\n├── api-gateway/\n├── account-service/\n├── transaction-service/\n├── asset-service/\n└── notification-service/\n\nfrontend/\n└── nextjs-bank-app/\n```\n\n## Getting Started\n\n### Prerequisites\n\n- Java 17+\n- Maven 3.6+\n- Node.js 18+\n- Docker (optional)\n\n### Running the Backend\n\nOpen a separate terminal for each service and run:\n\n```\ncd backend/config-server \u0026\u0026 mvn spring-boot:run\ncd backend/discovery-server \u0026\u0026 mvn spring-boot:run\ncd backend/api-gateway \u0026\u0026 mvn spring-boot:run\ncd backend/account-service \u0026\u0026 mvn spring-boot:run\ncd backend/transaction-service \u0026\u0026 mvn spring-boot:run\ncd backend/asset-service \u0026\u0026 mvn spring-boot:run\ncd backend/notification-service \u0026\u0026 mvn spring-boot:run\n```\n\n### Running the Frontend\n\n```\ncd frontend/nextjs-bank-app\nnpm install\nnpm run dev\n```\n\n## Next Steps\n\n1. Scaffold each microservice with a `pom.xml`, `Application` class, and basic controller.\n2. Implement domain models, repositories, and services.\n3. Configure Spring Cloud Config, Eureka clients, and Kafka.\n4. Secure endpoints with JWT/OAuth2.\n5. Build and containerize modules with Docker.\n\n---\n\n## Frontend Documentation\n\n### Pages\n- `/` - Landing page with hero, operations dropdown, signup/login\n- `/features` - Displays app capabilities and backend endpoint list\n- `/help` - Fun under-construction page with animations\n- `/blog` - Fake blog posts about the app\n- `/advice` - Displays a playful motto\n- `/accounts` - Fetches and displays accounts from `/api/accounts`\n- `/transactions` - Fetches and displays transactions\n- `/assets` - Fetches and displays assets\n- `/notifications` - Fetches and displays notifications\n- `/login` - Login form posting to `/api/login`\n- `/signup` - Signup form posting to `/api/signup`\n\n### Proxy API Endpoints\n- `GET/POST/PUT/PATCH/DELETE /api/accounts`\n- `GET/POST/PUT/PATCH/DELETE /api/transactions`\n- `GET/POST/PUT/PATCH/DELETE /api/assets`\n- `GET/POST/PUT/PATCH/DELETE /api/notifications`\n- `POST /api/login`\n- `POST /api/signup`\n\n## Backend Documentation\n\nAll backend services run behind the API Gateway at `http://localhost:8080`.\n\n### Account Service\n- `GET /api/accounts`\n- `POST /api/accounts`\n- `GET /api/accounts/{id}`\n- `PUT /api/accounts/{id}`\n- `DELETE /api/accounts/{id}`\n\n### Transaction Service\n- `GET /api/transactions`\n- `POST /api/transactions`\n- `GET /api/transactions/{id}`\n- `PUT /api/transactions/{id}`\n- `DELETE /api/transactions/{id}`\n\n### Asset Service\n- `GET /api/assets`\n- `POST /api/assets`\n- `GET /api/assets/{id}`\n- `PUT /api/assets/{id}`\n- `DELETE /api/assets/{id}`\n\n### Notification Service\n- `GET /api/notifications`\n- `POST /api/notifications`\n- `GET /api/notifications/{id}`\n- `PUT /api/notifications/{id}`\n- `DELETE /api/notifications/{id}`\n\n### Authentication Endpoints\n- `POST /login` - Spring Security login (session cookie)\n- `POST /signup` - User registration\n\n## Tech Stack\n\n### Backend\n- Java 17\n- Spring Boot, Spring Cloud (Eureka, Config, Gateway)\n- Spring Security (JWT, OAuth2)\n- Resilience4j (Circuit Breaker)\n- Apache Kafka (Event-Driven)\n- Redis (Cache-Aside)\n- MongoDB, PostgreSQL, MySQL\n- Docker\n\n### Frontend\n- Next.js (React, TypeScript)\n- Tailwind CSS\n- Shadcn UI\n- Environment: Node.js 18, .env.local for API_GATEWAY_URL\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faburraq%2Fre-bank","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faburraq%2Fre-bank","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faburraq%2Fre-bank/lists"}