NovaBank is a robust, monolithic banking application designed to manage various account types, user profiles, and ensure regulatory compliance through streamlined processes and seamless integration. This pet project serves as a proof of concept, demonstrating scalable and secure banking solutions by combining system design, solution architecture, and domain expertise.
- Manage various account types including savings, current, fixed deposit, and recurring deposit accounts.
- Create and manage user profiles with role-based access control (RBAC) to ensure secure access and enhanced functionality.
- Know Your Customer (KYC) verification.
- Anti-Money Laundering (AML) monitoring.
- Real-time transaction tracking and audit logging for compliance purposes.
- Robust transaction processing with ACID properties to ensure data integrity and consistency.
- Scheduled background tasks (e.g., interest calculations, reports) using Quartz Scheduler.
- End-to-end encryption for sensitive data.
- Secure authentication and authorization mechanisms using Spring Security.
- Reporting and analytics for transaction trends, account activity, and system health.
- Audit logs for compliance verification.
- Customer support and personalized product recommendations based on account history and preferences.
- Angular with Gulp for building modern, dynamic user interfaces and theme management.
- Multi-module setup using Gradle to manage different components independently and ensure future scalability.
-
Financial Transaction Management 💵
- Secure, scalable handling of customer transactions, including funds transfers, deposits, and withdrawals.
-
Real-World Banking Operations 🏦
- Simulate and manage core banking processes like account creation, transaction history, and account balances.
-
Educational Purpose 📚
- Demonstrating end-to-end application design, ideal for research, technical learning, or proof of concept presentations.
- Spring Framework:
- Spring MVC: Web application development
- Spring Data JPA: Database operations
- Spring AOP: Cross-cutting concerns like logging and auditing
- Spring Security: Authentication and authorization
- Hibernate: ORM (Object-Relational Mapping)
- Quartz Scheduler: Scheduling background tasks for recurring jobs and reports
- MySQL: Relational database for structured transactional data
- MongoDB/Redis: For unstructured data, logs, and caching mechanisms
- Gradle: For dependency management, build automation, and project organization
- SLF4J: Centralized logging with Logback for flexible configuration
NovaBank is licensed as CLOSED-SOURCE. Please refer to the LICENSE file for detailed terms.